import { CroakSigner } from './sub_modules/CroakSigner';
import { providers } from "ethers";
declare type onLoginChangeCBTYpe = (isLoggedIn: boolean) => void;
interface CroakWalletInitParams {
    chain: string;
    authNetwork: string;
    clientIdentifier: string;
}
declare class CroakWallet {
    chain: string;
    authNetwork: string;
    clientIdentifier: string;
    onLoginChange: onLoginChangeCBTYpe;
    iWin: any;
    iframeInitialized: boolean;
    initCalled: boolean;
    globalInitPromise: any;
    private croakSigner;
    constructor();
    private initCB;
    private initRejectCB;
    init({ chain, authNetwork, clientIdentifier }: CroakWalletInitParams): any;
    private initInternal;
    _createIframe(): void;
    _checkIfLoaded(): number;
    showConnectModal(): void;
    login(loginType: string, lastLocation: string): void;
    private getUserInfoCB;
    private getUserInfoRejectCB;
    getUserInfo(): Promise<unknown>;
    private isConnectedCB;
    private isConnectedRejectedCB;
    isConnected(): Promise<unknown>;
    private getWalletIDCB;
    private getWalletIdRejectCB;
    getWalletID(): Promise<unknown>;
    private logoutCB;
    private logoutRejectedCB;
    logout(): Promise<unknown>;
    _loginWithIdToken({ loginType, userInfo, verifier }: any): void;
    handleMessage(event: MessageEvent<any>): void;
    getSigner(provider?: providers.Provider): Promise<CroakSigner>;
}
declare let croakWallet: CroakWallet;
export { croakWallet };
