import { Auth, AuthOptions, LoginParams } from "@web3auth/auth";
import { ADAPTER_CATEGORY_TYPE, ADAPTER_STATUS_TYPE, AdapterInitOptions, AdapterNamespaceType, BaseAdapter, BaseAdapterSettings, ChainNamespaceType, CustomChainConfig, IProvider, UserInfo } from "@web3auth/base";
import type { AuthAdapterOptions, PrivateKeyProvider } from "./interface";
export type AuthLoginParams = LoginParams & {
    login_hint?: string;
};
export declare class AuthAdapter extends BaseAdapter<AuthLoginParams> {
    readonly name: string;
    readonly adapterNamespace: AdapterNamespaceType;
    readonly type: ADAPTER_CATEGORY_TYPE;
    authInstance: Auth | null;
    status: ADAPTER_STATUS_TYPE;
    currentChainNamespace: ChainNamespaceType;
    privateKeyProvider: PrivateKeyProvider | null;
    private authOptions;
    private loginSettings;
    constructor(params?: AuthAdapterOptions);
    get chainConfigProxy(): CustomChainConfig | null;
    get provider(): IProvider | null;
    set provider(_: IProvider | null);
    init(options: AdapterInitOptions): Promise<void>;
    connect(params?: AuthLoginParams): Promise<IProvider | null>;
    enableMFA(params?: AuthLoginParams): Promise<void>;
    manageMFA(params?: AuthLoginParams): Promise<void>;
    disconnect(options?: {
        cleanup: boolean;
    }): Promise<void>;
    authenticateUser(): Promise<{
        idToken: string;
    }>;
    getUserInfo(): Promise<Partial<UserInfo>>;
    setAdapterSettings(adapterSettings: Partial<AuthOptions & BaseAdapterSettings> & {
        privateKeyProvider?: PrivateKeyProvider;
    }): void;
    addChain(chainConfig: CustomChainConfig, init?: boolean): Promise<void>;
    switchChain(params: {
        chainId: string;
    }, init?: boolean): Promise<void>;
    private _getFinalPrivKey;
    private _getFinalEd25519PrivKey;
    private connectWithProvider;
}
