import { ChainEnum } from '@dynamic-labs/sdk-api-core'; import { BaseWallet } from '@dynamic-labs/types'; export type WalletDelegationStatus = 'delegated' | 'denied' | 'pending'; export type BaseWalletWithStatus = BaseWallet & { status: WalletDelegationStatus; isDismissedThisSession?: boolean; }; export type DelegatedAccessState = { delegatedAccessEnabled?: boolean; requiresDelegation?: boolean; walletsDelegatedStatus: BaseWalletWithStatus[]; }; export type DelegatedAccessMessages = { initDelegationProcess: (params: { walletIds?: string[]; }) => Promise; shouldPromptWalletDelegation: () => Promise; getWalletsDelegatedStatus: () => Promise; delegateKeyShares: (params: { wallets?: { chainName: ChainEnum; accountAddress: string; }[]; password?: string; }) => Promise; revokeDelegation: (params: { wallets: { chainName: ChainEnum; accountAddress: string; }[]; password?: string; }) => Promise; denyWalletDelegation: (params: { walletId: string; }) => Promise; dismissDelegationPrompt: (params: { walletId?: string; }) => Promise; clearDelegationSessionState: () => Promise; };