import { type Abi, type Address, type Hex } from 'viem'; type ContractType = { address: Address; abi: Abi; read?: { [functionName: string]: (...args: any[]) => Promise; }; simulate?: { [functionName: string]: (...args: any[]) => Promise; }; }; export type EncodableContract = TContract & { prepare: { [K in TFunctionName]: (...args: Parameters any ? TMethods[K] : never>) => { address: TContract['address']; abi: TContract['abi']; functionName: K; args: Parameters any ? TMethods[K] : never>[0] extends readonly unknown[] ? Parameters any ? TMethods[K] : never>[0] : undefined; }; }; encode: { [K in TFunctionName]: (...args: Parameters any ? TMethods[K] : never>) => { to: TContract['address']; data: Hex; value?: bigint; }; }; }; export declare const getEncodableContract: (contract: TContract) => EncodableContract; export {}; //# sourceMappingURL=get-encodable-contract.d.ts.map