import { type ConductorNotificationStore } from "../conductor/notifications.js"; import { type DispatchAuthority } from "../dispatch/authority.js"; import { type RuntimeEventBus } from "../events/bus.js"; import { type OutboxProcessor } from "../outbox/processor.js"; import { type OutboxStore } from "../outbox/store.js"; import { type SessionRegistry } from "../sessions/registry.js"; import { createTicketLifecycleService } from "../tickets/store.js"; import { type WorkerRegistry } from "../workers/registry.js"; import { type ProviderBindingResolver, type ProviderName, type ProviderObservation, type ProviderRuntimeBinding } from "./provider.js"; export declare const PROVIDER_EVENT_PROJECTOR = "provider-event-projector"; type TicketLifecycle = ReturnType; export interface DurableProviderBindingResolver extends ProviderBindingResolver { resolveProjection(observation: ProviderObservation): Readonly<{ status: "current" | "active-advanced" | "superseded"; binding: ProviderRuntimeBinding; }>; } export interface ProviderProjectionResult { readonly event_ids: readonly string[]; readonly notification_id: string | null; } export declare function createDurableProviderBindingResolver(options: { provider: ProviderName; dispatch: DispatchAuthority; workers: WorkerRegistry; sessions: SessionRegistry; tickets: TicketLifecycle; }): DurableProviderBindingResolver; export declare function publishAndProjectProviderObservations(options: { observations: readonly ProviderObservation[]; processedAt: string; packageRoot: string; configRoot: string; bus: RuntimeEventBus; processor: OutboxProcessor; outbox: OutboxStore; notifications: ConductorNotificationStore; bindings: DurableProviderBindingResolver; workers: WorkerRegistry; sessions: SessionRegistry; }): Promise; export declare function projectProviderEvents(options: { eventIds: readonly string[]; processedAt: string; packageRoot: string; configRoot: string; bus: RuntimeEventBus; processor: OutboxProcessor; outbox: OutboxStore; notifications: ConductorNotificationStore; bindings: DurableProviderBindingResolver; workers: WorkerRegistry; sessions: SessionRegistry; }): Promise; export {};