/** * @since 1.0.0 */ import * as MsgPack from "@effect/platform/MsgPack"; import * as Schema from "effect/Schema"; /** * @since 1.0.0 * @category type ids */ export declare const TypeId: unique symbol; /** * @since 1.0.0 * @category type ids */ export type TypeId = typeof TypeId; /** * @since 1.0.0 * @category guards */ export declare const isEvent: (u: unknown) => u is Event; /** * Represents an event in an EventLog. * * @since 1.0.0 * @category models */ export interface Event { readonly [TypeId]: TypeId; readonly tag: Tag; readonly primaryKey: (payload: Schema.Schema.Type) => string; readonly payload: Payload; readonly payloadMsgPack: MsgPack.schema; readonly success: Success; readonly error: Error; } /** * @since 1.0.0 * @category models */ export interface EventHandler { readonly _: unique symbol; readonly tag: Tag; } /** * @since 1.0.0 * @category models */ export declare namespace Event { /** * @since 1.0.0 * @category models */ interface Any { readonly [TypeId]: TypeId; readonly tag: string; } /** * @since 1.0.0 * @category models */ interface AnyWithProps extends Event { } /** * @since 1.0.0 * @category models */ type ToService = A extends Event ? EventHandler<_Tag> : never; /** * @since 1.0.0 * @category models */ type Tag = A extends Event ? _Tag : never; /** * @since 1.0.0 * @category models */ type ErrorSchema = A extends Event ? _Error : never; /** * @since 1.0.0 * @category models */ type Error = Schema.Schema.Type>; /** * @since 1.0.0 * @category models */ type AddError = A extends Event ? Event<_Tag, _Payload, _Success, _Error | Error> : never; /** * @since 1.0.0 * @category models */ type PayloadSchema = A extends Event ? _Payload : never; /** * @since 1.0.0 * @category models */ type Payload = Schema.Schema.Type>; /** * @since 1.0.0 * @category models */ type TaggedPayload = A extends Event ? { readonly _tag: _Tag; readonly payload: Schema.Schema.Type<_Payload>; } : never; /** * @since 1.0.0 * @category models */ type SuccessSchema = A extends Event ? _Success : never; /** * @since 1.0.0 * @category models */ type Success = Schema.Schema.Type>; /** * @since 1.0.0 * @category models */ type Context = A extends Event ? Schema.Schema.Context<_Payload> | Schema.Schema.Context<_Success> | Schema.Schema.Context<_Error> : never; /** * @since 1.0.0 * @category models */ type WithTag = Extract; /** * @since 1.0.0 * @category models */ type ExcludeTag = Exclude; /** * @since 1.0.0 * @category models */ type PayloadWithTag = Payload>; /** * @since 1.0.0 * @category models */ type SuccessWithTag = Success>; /** * @since 1.0.0 * @category models */ type ErrorWithTag = Error>; /** * @since 1.0.0 * @category models */ type ContextWithTag = Context>; } /** * @since 1.0.0 * @category constructors */ export declare const make: (options: { readonly tag: Tag; readonly primaryKey: (payload: Schema.Schema.Type) => string; readonly payload?: Payload; readonly success?: Success; readonly error?: Error; }) => Event; //# sourceMappingURL=Event.d.ts.map