import * as t from 'io-ts'; import { EventWithPayload, EventWithoutPayload } from './event.interface'; declare type Payload = t.TypeC | t.TupleC | t.UnionC | t.ReadonlyC | t.ReadonlyArrayC | t.UnknownC | t.ArrayC | t.StringC | t.BigIntC | t.BooleanC | t.BrandC | t.NumberC | t.NullC | t.UnionC | t.UndefinedC | t.PartialC | t.BrandC | t.RecordC | t.IntersectionC | t.ExactC | t.UnknownRecordC | t.StringC | t.LiteralC | t.KeyofC; export declare type EventCodec = EventSchemaWithPayload | EventSchema; export declare type EventSchema = t.TypeC<{ type: t.LiteralC; payload: t.UndefinedC; }>; export declare type EventSchemaWithPayload = t.TypeC<{ type: t.LiteralC; payload: P; }>; declare type EventCreator = () => EventWithoutPayload; declare type EventCreatorWithPayload = (payload: t.TypeOf

) => EventWithPayload, T>; declare type EventBuilderOutput = undefined extends P ? EventSchema & { create: EventCreator; } : EventSchemaWithPayload> & { create: EventCreatorWithPayload>; }; export declare const EVENT_CODEC_NAME = "EventSchema"; export declare const isEventCodec: (codec: any) => codec is EventCodec; /** * Creates an Event codec for decoding and creating I/O events. * @since v3.3.0 * @example * * const CreateUser = event('CREATE_USER')(t.type({ * name: t.string, * age: t.number, * })); * * CreateUser.create({ * name: 'Bob', * age: 21, * }); */ export declare const event: (type: T) =>

(payload?: P | undefined) => EventBuilderOutput; export {}; //# sourceMappingURL=event.d.ts.map