import { ZodType, z } from 'zod'; export type InferInput> = { [K in keyof T]: z.infer; }; export type SchemaFn, O extends ZodType, C> = (input: InferInput & C) => Promise>; export declare class FnBuilder, O extends ZodType, C, M = InferInput & C> { inputSchema: I; outputSchema: O; constructor(inputSchema: I, outputSchema: O); middlewares: ((x: any) => Promise)[]; use(fn: (input: M) => Promise): FnBuilder; do(fn: (input: M) => Promise>): HyperRPCFn; } export declare class HyperRPCFn, O extends ZodType, C = {}> { input: I; output: O; fn: SchemaFn; middlewares: ((x: any) => Promise)[]; private inputValidator; constructor(input: I, output: O, fn: SchemaFn, middlewares?: ((x: any) => Promise)[]); call(ctx: C, args: unknown): Promise>; }