import { DomainEvent } from './domain-event'; import type { GatePhase, EvaluatorKind } from '../gate-evidence'; export declare const EVENT_TYPES: { readonly PHASE_STARTED: "phase.started"; readonly PHASE_COMPLETED: "phase.completed"; readonly GATE_APPROVED: "gate.approved"; readonly GATE_REJECTED: "gate.rejected"; readonly ARTIFACT_CREATED: "artifact.created"; readonly ARTIFACT_UPDATED: "artifact.updated"; readonly ARTIFACT_VALIDATED: "artifact.validated"; readonly BLUEPRINT_GENERATED: "blueprint.generated"; readonly BLUEPRINT_VALIDATED: "blueprint.validated"; readonly WORKFLOW_UPDATED: "workflow.updated"; }; export type EventType = (typeof EVENT_TYPES)[keyof typeof EVENT_TYPES]; export interface PhaseStartedPayload { projectId: string; phase: GatePhase; startedBy?: string; } export interface PhaseCompletedPayload { projectId: string; phase: GatePhase; completedAt: string; } export interface GateApprovedPayload { projectId: string; phase: GatePhase; gateId: string; rulesetRef: string; rulesetVersion?: string; evaluatedBy: EvaluatorKind; evaluatedAt: string; } export interface GateRejectedPayload { projectId: string; phase: GatePhase; gateId: string; rulesetRef: string; rulesetVersion?: string; evaluatedBy: EvaluatorKind; evaluatedAt: string; violationCount: number; } export interface ArtifactCreatedPayload { projectId: string; artifactPath: string; artifactType?: string; } export interface ArtifactUpdatedPayload { projectId: string; artifactPath: string; artifactType?: string; } export interface ArtifactValidatedPayload { projectId: string; artifactPath: string; passed: boolean; validatedAt: string; } export interface BlueprintGeneratedPayload { projectId: string; blueprintId: string; generatedAt: string; } export interface BlueprintValidatedPayload { projectId: string; blueprintId: string; passed: boolean; validatedAt: string; } export interface WorkflowUpdatedPayload { projectId: string; workflowId: string; updatedAt: string; changedFields?: string[]; } export type PhaseStartedEvent = DomainEvent; export type PhaseCompletedEvent = DomainEvent; export type GateApprovedEvent = DomainEvent; export type GateRejectedEvent = DomainEvent; export type ArtifactCreatedEvent = DomainEvent; export type ArtifactUpdatedEvent = DomainEvent; export type ArtifactValidatedEvent = DomainEvent; export type BlueprintGeneratedEvent = DomainEvent; export type BlueprintValidatedEvent = DomainEvent; export type WorkflowUpdatedEvent = DomainEvent; export declare const DomainEvents: { readonly phaseStarted: (payload: PhaseStartedPayload, correlationId?: string) => PhaseStartedEvent; readonly phaseCompleted: (payload: PhaseCompletedPayload, correlationId?: string) => PhaseCompletedEvent; readonly gateApproved: (payload: GateApprovedPayload, correlationId?: string) => GateApprovedEvent; readonly gateRejected: (payload: GateRejectedPayload, correlationId?: string) => GateRejectedEvent; readonly artifactCreated: (payload: ArtifactCreatedPayload, correlationId?: string) => ArtifactCreatedEvent; readonly artifactUpdated: (payload: ArtifactUpdatedPayload, correlationId?: string) => ArtifactUpdatedEvent; readonly artifactValidated: (payload: ArtifactValidatedPayload, correlationId?: string) => ArtifactValidatedEvent; readonly blueprintGenerated: (payload: BlueprintGeneratedPayload, correlationId?: string) => BlueprintGeneratedEvent; readonly blueprintValidated: (payload: BlueprintValidatedPayload, correlationId?: string) => BlueprintValidatedEvent; readonly workflowUpdated: (payload: WorkflowUpdatedPayload, correlationId?: string) => WorkflowUpdatedEvent; };