import type { ClientWithPns } from '../contracts/consts.js'; import type { TransactionRequestWithPassthrough } from '../types.js'; export type EncoderFunction = (...args: any[]) => TransactionRequestWithPassthrough; export type DecoderFunction = (...args: any[]) => Promise; type OmitFirstArg = F extends (x: any, ...args: infer P) => infer R ? (...args: P) => R : never; export type CoderObject = { encode: TEncoderFn; decode: TDecoderFn; }; export type BatchFunctionResult = { args: Parameters>; } & CoderObject; export type ExtractResult = TFunction extends (...args: any[]) => Promise ? U : never; export interface GeneratedFunction extends Function, CoderObject { (client: ClientWithPns, ...args: Parameters>): Promise | null>; batch: (...args: Parameters>) => BatchFunctionResult; } export declare const generateFunction: = GeneratedFunction>({ encode, decode, }: { encode: TEncoderFn; decode: TDecoderFn; }) => TFunction; export {}; //# sourceMappingURL=generateFunction.d.ts.map