import { ZodType } from 'zod'; import { HyperRPCEvent } from './event'; import { FnBuilder, HyperRPCFn } from './fn'; export type MetaObject = { connId: string; authToken?: string; }; type HyperRPCBaseFn = HyperRPCFn; type HyperRPCBaseEvent = HyperRPCEvent; type ServiceFields = HyperRPCService | HyperRPCBaseFn | HyperRPCBaseEvent; export declare class HyperRPCService { hyperRPC: HyperRPC; subservices: Record; functions: Record; events: Record; path: string; constructor(hyperRPC: HyperRPC, subservices: Record, functions: Record, events: Record); root(path?: string): this; } export declare class HyperRPC { contextFn: (base: { $meta: MetaObject; }) => Context | Promise; context(fn: (base: { $meta: MetaObject; }) => T | Promise): HyperRPC; fn, O extends ZodType>(input: I, output: O): FnBuilder & Context>; event(event: T): HyperRPCEvent; service(handlers: { [key: string]: ServiceFields; }): HyperRPCService; } export {};