import { ChainEnum, MFAAction, TokenScope } from '@dynamic-labs/sdk-api-core';
import { GetWalletPasswordFn, IDynamicWaasConnector, Wallet, WalletConnectorCore } from '@dynamic-labs/wallet-connector-core';
/**
 * Type for wallet creation requirements
 * For BTC: includes bitcoinConfig with addressType
 * For other chains: bitcoinConfig is optional
 */
export type WalletCreationRequirement = {
    chain: ChainEnum;
    bitcoinConfig?: {
        addressType?: string;
        network?: string;
    };
};
export declare const configWaasWalletConnector: ({ walletConnector, environmentId, apiBaseUrl, relayUrl, baseClientKeysharesRelayApiUrl, authMode, getSignedSessionId, getMfaToken, getWalletPassword, getSvmGasSponsorshipEnabled, getElevatedAccessToken, }: {
    walletConnector: IDynamicWaasConnector;
    environmentId: string;
    apiBaseUrl: string;
    relayUrl: string;
    baseClientKeysharesRelayApiUrl?: string;
    authMode?: 'cookie' | 'header';
    getSignedSessionId: () => Promise<string>;
    getMfaToken: (props?: {
        mfaAction?: MFAAction;
    }) => Promise<string | undefined>;
    getWalletPassword?: GetWalletPasswordFn;
    getSvmGasSponsorshipEnabled?: () => boolean;
    getElevatedAccessToken?: (params: {
        scope: TokenScope;
    }) => Promise<string | undefined>;
}) => IDynamicWaasConnector;
export declare const useDynamicWaas: () => {
    areWalletsReadyForSettings: () => boolean;
    clearRecoveredWallets: () => void;
    createWalletAccount: (requirementsOrChainNames: WalletCreationRequirement[] | ChainEnum[], password?: string, bitcoinConfig?: {
        addressType?: string;
        network?: string;
    }, options?: {
        skipCloseAuthFlow?: boolean;
    }) => Promise<any[] | undefined>;
    dynamicWaasIsEnabled: boolean;
    getWaasWalletConnector: (chainName: string) => IDynamicWaasConnector | undefined;
    getWaasWallets: () => Wallet<WalletConnectorCore.WalletConnector>[];
    getWaasWalletsByCredentials: () => import("@dynamic-labs/sdk-api-core").JwtVerifiedCredential[];
    importPrivateKey: ({ chainName, privateKey, addressType, legacyWalletId, password, }: {
        chainName: ChainEnum;
        privateKey: string;
        addressType?: string;
        legacyWalletId?: string;
        password?: string;
    }) => Promise<void>;
    initializeWaas: () => Promise<void>;
    needsAutoCreateWalletChains: WalletCreationRequirement[];
    needsSettingsProcessing: boolean;
    processSignOnWalletSettings: () => Promise<void>;
    shouldInitializeWaas: boolean;
    upgradeToDynamicWaas: ({ privateKey, wallet, password, }: {
        privateKey: string;
        wallet: Wallet<WalletConnectorCore.WalletConnector>;
        password?: string;
    }) => Promise<void>;
};
