export declare namespace event { export type Definition = { type: string; $input: any; $output: any; $metadata: any; $payload: any; create: (...args: any[]) => Promise; }; export function builder any) | Parameters[0], Validator extends (schema: any) => (input: any) => any>(input: { validator: Validator; metadata?: Metadata; }): { [0]>(type: Type, schema: Schema): { create: Metadata extends (type: string, properties: any) => any ? (properties: inferParser["in"]) => Promise<{ type: Type; properties: inferParser["out"]; metadata: Metadata extends (type: string, properties: any) => any ? ReturnType : inferParser["out"]; }> : (properties: inferParser["in"], metadata: inferParser["in"]) => Promise<{ type: Type; properties: inferParser["out"]; metadata: Metadata extends (type: string, properties: any) => any ? ReturnType : inferParser["out"]; }>; type: Type; $input: inferParser["in"]; $output: inferParser["out"]; $payload: { type: Type; properties: inferParser["out"]; metadata: Metadata extends (type: string, properties: any) => any ? ReturnType : inferParser["out"]; }; $metadata: Metadata extends (type: string, properties: any) => any ? ReturnType : inferParser["out"]; }; coerce(_events: Events | Events[], raw: any): { [K in Events["type"]]: Extract["$payload"]; }[Events["type"]]; }; type ParserZodEsque = { _input: TInput; _output: TParsedInput; }; type ParserValibotEsque = { _types?: { input: TInput; output: TParsedInput; }; }; type ParserMyZodEsque = { parse: (input: any) => TInput; }; type ParserSuperstructEsque = { create: (input: unknown) => TInput; }; type ParserCustomValidatorEsque = (input: unknown) => Promise | TInput; type ParserYupEsque = { validateSync: (input: unknown) => TInput; }; type ParserScaleEsque = { assert(value: unknown): asserts value is TInput; }; export type ParserWithoutInput = ParserCustomValidatorEsque | ParserMyZodEsque | ParserScaleEsque | ParserSuperstructEsque | ParserYupEsque; export type ParserWithInputOutput = ParserZodEsque | ParserValibotEsque; export type Parser = ParserWithInputOutput | ParserWithoutInput; export type inferParser = TParser extends ParserWithInputOutput ? { in: $TIn; out: $TOut; } : TParser extends ParserWithoutInput ? { in: $InOut; out: $InOut; } : never; export {}; }