import { DelegateParams, FailingNoopParams, IncreasePaidStorageParams, OriginateParams, TransferParams, StakeParams, UnstakeParams, FinalizeUnstakeParams } from '../operations/types'; export type WalletDefinedFields = 'source'; export type WalletTransferParams = Omit; export type WalletStakeParams = Omit; export type WalletUnstakeParams = Omit; export type WalletFinalizeUnstakeParams = Omit; export type WalletOriginateParams = Omit, WalletDefinedFields>; export type WalletDelegateParams = Omit; export type WalletFailingNoopParams = Omit; export type WalletIncreasePaidStorageParams = Omit; export interface WalletProvider { /** * @description Request the public key hash from the wallet */ getPKH: () => Promise; /** * @description Get the public key from the wallet */ getPK: () => Promise; /** * @description Transform WalletTransferParams into a format compliant with the underlying wallet */ mapTransferParamsToWalletParams: (params: () => Promise) => Promise; /** * @description Transform WalletStakeParams into a format compliant with the underlying wallet */ mapStakeParamsToWalletParams: (params: () => Promise) => Promise; /** * @description Transform WalletUnstakeParams into a format compliant with the underlying wallet */ mapUnstakeParamsToWalletParams: (params: () => Promise) => Promise; /** * @description Transform WalletFinalizeUnstakeParams into a format compliant with the underlying wallet */ mapFinalizeUnstakeParamsToWalletParams: (params: () => Promise) => Promise; /** * @description Transform WalletOriginateParams into a format compliant with the underlying wallet */ mapOriginateParamsToWalletParams: (params: () => Promise) => Promise; /** * @description Transform WalletDelegateParams into a format compliant with the underlying wallet */ mapDelegateParamsToWalletParams: (params: () => Promise) => Promise; /** * @description Transform WalletIncreasePaidStorageParams into a format compliant with the underlying wallet */ mapIncreasePaidStorageWalletParams: (params: () => Promise) => Promise; /** * @description Request the wallet to send an operation batch */ sendOperations: (params: any[]) => Promise; /** * @description Request the wallet to sign a payload */ sign(bytes: string, watermark?: Uint8Array): Promise; }