/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

interface nsIInterfaceRequestor;
interface nsIProtectedAuthThread;

[scriptable, uuid(a1cbc159-468c-495d-8068-61dd538cbcca)]
interface nsITokenDialogs : nsISupports
{
  void ChooseToken(in nsIInterfaceRequestor ctx,
                   [array, size_is(count)] in wstring tokenNameList,
                   in unsigned long count,
                   out wstring tokenName,
                   out boolean canceled);

    /**
    * displayProtectedAuth - displays notification dialog to the user 
    * that he is expected to authenticate to the token using its
    * "protected authentication path" feature
    */
  void displayProtectedAuth(in nsIInterfaceRequestor ctx,
                            in nsIProtectedAuthThread runnable);
};

%{C++
#define NS_TOKENDIALOGS_CONTRACTID "@mozilla.org/nsTokenDialogs;1"
%}