/** * Cruise domain events. * * Emitted after successful local cruise mutations. Subscribers should treat * these payloads as invalidation triggers and re-read current cruise state * before updating catalog/search projections. */ import { type EntityOverlayChangedPayload } from "@voyant-travel/catalog"; import type { EventBus } from "@voyant-travel/core"; /** Stable string identifier for local cruise creation. */ export declare const CRUISE_CREATED_EVENT: "cruise.created"; /** Stable string identifier for local cruise updates. */ export declare const CRUISE_UPDATED_EVENT: "cruise.updated"; /** Stable string identifier for local cruise deletion/archive. */ export declare const CRUISE_DELETED_EVENT: "cruise.deleted"; export type CruiseLifecycleEventName = typeof CRUISE_CREATED_EVENT | typeof CRUISE_UPDATED_EVENT | typeof CRUISE_DELETED_EVENT; export interface CruiseLifecycleEvent { /** Cruise id whose lifecycle changed. */ id: string; } export declare function emitCruiseLifecycleEvent(eventBus: EventBus | undefined, event: CruiseLifecycleEventName, payload: CruiseLifecycleEvent): Promise; /** Emit the canonical index/read-model invalidation after a durable overlay mutation. */ export declare function emitCruiseShipOverlayChanged(eventBus: EventBus | undefined, payload: EntityOverlayChangedPayload): Promise;