import { ChainEnum } from '@dynamic-labs/sdk-api-core';
import { Wallet } from '../../../shared';
export type WalletDelegationStatus = 'delegated' | 'denied' | 'pending';
export type WalletWithStatus = Wallet & {
    status: WalletDelegationStatus;
    isDismissedThisSession?: boolean;
};
/**
 * Gets pending wallets that are eligible for delegation.
 * If wallets are provided and not empty, converts them to WalletWithStatus[] with pending status.
 * Otherwise, returns all pending wallets from getWalletsDelegatedStatus.
 */
export declare const getWalletsToDelegate: (wallets: Wallet[] | undefined, getWalletsDelegatedStatus: () => WalletWithStatus[]) => WalletWithStatus[];
export declare const useWalletDelegation: () => {
    readonly clearDelegationSessionState: () => void;
    readonly delegateKeyShares: (wallets?: {
        chainName: ChainEnum;
        accountAddress: string;
    }[]) => Promise<void>;
    readonly delegatedAccessEnabled: boolean | undefined;
    readonly denyWalletDelegation: (walletId: string) => Promise<void>;
    readonly dismissDelegationPrompt: (walletId?: string) => void;
    readonly getWalletsDelegatedStatus: () => WalletWithStatus[];
    readonly getWalletsToDelegate: (wallets: Wallet[] | undefined, getWalletsDelegatedStatus: () => WalletWithStatus[]) => WalletWithStatus[];
    readonly initDelegationProcess: (options?: {
        wallets?: Wallet[];
    }) => Promise<void>;
    readonly requiresDelegation: boolean | undefined;
    readonly revokeDelegation: (wallets: {
        chainName: ChainEnum;
        accountAddress: string;
    }[]) => Promise<void>;
    readonly shouldPromptWalletDelegation: () => boolean;
};
