import type { ArtifactRef, StageId, StageRecord } from '../types/index.js'; import { type ClarificationFinding, type ClarificationHandle, type ClarificationPayload, type ClarificationResponse, type ClarificationScanRule, type ClarificationStageTransition, type ClarificationTarget } from './clarification-types.js'; import type { ClarificationRecord } from './clarification-record.js'; export interface HostClarificationAdapter { requestClarification(target: ClarificationTarget, payload: ClarificationPayload): ClarificationHandle; onClarificationResponse(callback: (response: ClarificationResponse) => void): void; onClarificationTimeout(callback: (handle: ClarificationHandle) => void): void; } export interface ClarificationCoordinatorOptions { adapter: HostClarificationAdapter; getStageRecord: (stageId: StageId) => StageRecord | undefined; updateStageRecord?: (stageId: StageId, updater: (record: StageRecord) => StageRecord) => StageRecord; applyResolution?: (record: ClarificationRecord) => ArtifactRef[]; artifactBasePath?: string; rules?: ClarificationScanRule[]; defaultTimeoutMs?: number; now?: () => string; createId?: () => string; } export declare class ClarificationCoordinator { private readonly options; private readonly records; private readonly handles; private readonly rules; private readonly now; private readonly createId; constructor(options: ClarificationCoordinatorOptions); scan(stageRecord: StageRecord, artifacts: ArtifactRef[]): ClarificationFinding[]; open(findings: ClarificationFinding[]): ClarificationRecord[]; dispatch(record: ClarificationRecord): ClarificationHandle; resolve(clarificationId: string, response: ClarificationResponse): ClarificationRecord; applyResolution(clarificationId: string): ArtifactRef[]; resumeStage(stageId: StageId, clarificationId: string): ClarificationStageTransition; getRecord(clarificationId: string): ClarificationRecord | undefined; listRecords(): ClarificationRecord[]; private handleTimeout; private countBlockingOutstanding; private assertKnownRecord; private getMutableRecord; } //# sourceMappingURL=clarification-coordinator.d.ts.map