import { ConnectionStatus } from '@suiet/wallet-sdk';
import { type Wallet } from '@wallet-standard/core';
import type { SuiWalletAdapter, SuiAccount, WalletWithStatus, SwitchWalletOptions } from '../types.js';
export declare const isSuiAccount: (acc: unknown) => acc is SuiAccount;
export type AccountState = {
    value: SuiAccount | undefined;
    setAccount: (account: SuiAccount | undefined) => void;
    removeAccount: () => void;
};
export declare const setAccountChainsInPlace: (account: AccountState, chains: readonly `${string}:${string}`[], zkLoginGoogle: any) => void;
export type SessionState = {
    walletAdapter: {
        get: () => SuiWalletAdapter | undefined;
        set: (v: SuiWalletAdapter | undefined) => void;
    };
    status: {
        get: () => ConnectionStatus;
        set: (v: ConnectionStatus) => void;
    };
    account: AccountState;
    wallet: {
        get: () => WalletWithStatus | undefined;
        set: (v: WalletWithStatus | undefined) => void;
    };
    accountsSnapshot: {
        get: () => SuiAccount[];
        set: (v: SuiAccount[]) => void;
    };
    walletEventsOff: {
        get: () => (() => void) | undefined;
        set: (v: (() => void) | undefined) => void;
    };
    lastWalletSelection: {
        get: () => {
            wallet: Wallet;
            installed: boolean;
        } | undefined;
        set: (v: {
            wallet: Wallet;
            installed: boolean;
        } | undefined) => void;
    };
};
export declare const attachWalletNetworkListener: (state: SessionState, zkLoginGoogle: any) => void;
export declare const connect: (wallet: WalletWithStatus, state: SessionState, zkLoginGoogle: any, onConnect: () => void, passkeyAdapter: any) => Promise<void>;
export declare const disconnect: (state: SessionState) => void;
export declare const connectWithModal: (connectModal: any, onSelection: ((payload: {
    wallet: Wallet;
    installed: boolean;
    connected: boolean;
}) => void) | undefined, state: SessionState, zkLoginGoogle: any, onConnect: () => void, passkeyAdapter: any) => Promise<{
    connected: boolean;
    alreadyConnected: boolean;
    wallet?: undefined;
    installed?: undefined;
    cancelled?: undefined;
} | {
    wallet: undefined;
    installed: boolean;
    connected: boolean;
    cancelled: boolean;
    alreadyConnected?: undefined;
} | {
    wallet: Wallet;
    installed: boolean;
    connected: boolean;
    alreadyConnected?: undefined;
    cancelled?: undefined;
}>;
export declare const switchWallet: (getConnectModal: () => any, options: SwitchWalletOptions, state: SessionState, zkLoginGoogle: any, onConnect: () => void, passkeyAdapter: any) => Promise<{
    connected: boolean;
    cancelled: boolean;
    wallet?: undefined;
    installed?: undefined;
    skipped?: undefined;
    error?: undefined;
} | {
    wallet: Wallet;
    installed: boolean;
    connected: boolean;
    skipped: boolean;
    cancelled?: undefined;
    error?: undefined;
} | {
    wallet: Wallet;
    installed: boolean;
    connected: boolean;
    cancelled?: undefined;
    skipped?: undefined;
    error?: undefined;
} | {
    connected: boolean;
    error: string;
    cancelled?: undefined;
    wallet?: undefined;
    installed?: undefined;
    skipped?: undefined;
}>;
export declare const autoConnectWallet: (autoConnect: boolean, availableWallets: WalletWithStatus[], state: SessionState, zkLoginGoogle: any, onConnect: () => void, passkeyAdapter: any) => Promise<void>;
export declare const switchAccount: (selector: number | string | SuiAccount, state: SessionState, zkLoginGoogle: any) => boolean;
export declare const activeAccountIndex: (state: SessionState) => {
    readonly value: number;
};
export declare const ensureCallable: (state: SessionState) => void;
