import { z } from 'zod'; export interface PhaseCompleteEvent { type: 'phase-complete'; phase: string; epicRepo: string; epicNumber: number; ts: string; initial?: true; } export interface EpicCompleteEvent { type: 'epic-complete'; epicRepo: string; epicNumber: number; ts: string; initial?: true; } export type AggregateEvent = PhaseCompleteEvent | EpicCompleteEvent; export declare const PhaseCompleteEventSchema: z.ZodObject<{ type: z.ZodLiteral<"phase-complete">; phase: z.ZodString; epicRepo: z.ZodString; epicNumber: z.ZodNumber; ts: z.ZodString; initial: z.ZodOptional>; }, "strict", z.ZodTypeAny, { phase: string; type: "phase-complete"; ts: string; epicRepo: string; epicNumber: number; initial?: true | undefined; }, { phase: string; type: "phase-complete"; ts: string; epicRepo: string; epicNumber: number; initial?: true | undefined; }>; export declare const EpicCompleteEventSchema: z.ZodObject<{ type: z.ZodLiteral<"epic-complete">; epicRepo: z.ZodString; epicNumber: z.ZodNumber; ts: z.ZodString; initial: z.ZodOptional>; }, "strict", z.ZodTypeAny, { type: "epic-complete"; ts: string; epicRepo: string; epicNumber: number; initial?: true | undefined; }, { type: "epic-complete"; ts: string; epicRepo: string; epicNumber: number; initial?: true | undefined; }>; export declare const AggregateEventSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodLiteral<"phase-complete">; phase: z.ZodString; epicRepo: z.ZodString; epicNumber: z.ZodNumber; ts: z.ZodString; initial: z.ZodOptional>; }, "strict", z.ZodTypeAny, { phase: string; type: "phase-complete"; ts: string; epicRepo: string; epicNumber: number; initial?: true | undefined; }, { phase: string; type: "phase-complete"; ts: string; epicRepo: string; epicNumber: number; initial?: true | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"epic-complete">; epicRepo: z.ZodString; epicNumber: z.ZodNumber; ts: z.ZodString; initial: z.ZodOptional>; }, "strict", z.ZodTypeAny, { type: "epic-complete"; ts: string; epicRepo: string; epicNumber: number; initial?: true | undefined; }, { type: "epic-complete"; ts: string; epicRepo: string; epicNumber: number; initial?: true | undefined; }>]>; export type AggregateEventValidated = z.infer; export interface EmitAggregateOptions { stdout?: { write(chunk: string): boolean | void; }; skipValidate?: boolean; } export declare function emitAggregate(event: AggregateEvent, opts?: EmitAggregateOptions): void; //# sourceMappingURL=aggregate-emit.d.ts.map