import type { GovernanceEventStore } from './event-store.js'; import type { GovernanceEvidenceCandidateLedgerEntry } from './evidence-candidate.js'; import type { TaskAggregate } from './task-aggregate.js'; import type { EvidenceKind } from './task-contract.js'; import type { VerificationCheckBindingResolution } from './verification-check-registry.js'; import type { IssueVerificationExecutionLeaseResult } from './verification-execution-lease.js'; import type { VerificationPlanDraftV1 } from './verification-planner.js'; import { type VerificationRunIssuanceIssue, type VerificationRunRequestV1 } from './verification-run-contract.js'; type VerificationIssuanceCoordinatorMode = 'legacy' | 'enforced'; interface VerificationCheckBindingResolver { bindingFor(checkId: string, evidenceKind: EvidenceKind): VerificationCheckBindingResolution; } interface VerificationExecutionLeaseIssuer { issueVerificationExecutionLeaseIfCurrent: GovernanceEventStore['issueVerificationExecutionLeaseIfCurrent']; recordWorkspaceSnapshot?: GovernanceEventStore['recordWorkspaceSnapshot']; } interface VerificationWorkspaceSnapshotRecorder { recordWorkspaceSnapshot: GovernanceEventStore['recordWorkspaceSnapshot']; } interface VerificationIssuanceCoordinatorOptions { /** Defaults to legacy; construction alone cannot enable governed issuance. */ readonly mode?: VerificationIssuanceCoordinatorMode | undefined; readonly verifierClientId: string; readonly ttlMs: number; readonly maxDurationMs: number; readonly now: () => string; readonly captureWorkspaceIdentity: () => Promise<{ readonly manifestHash: string; }>; readonly workspaceSnapshots?: VerificationWorkspaceSnapshotRecorder | undefined; readonly checkBindings: VerificationCheckBindingResolver; readonly leaseIssuer: VerificationExecutionLeaseIssuer; } export interface VerificationIssuanceCoordinatorInput { readonly task: TaskAggregate | null; readonly draft: VerificationPlanDraftV1; readonly candidates: readonly GovernanceEvidenceCandidateLedgerEntry[]; /** The complete model-proposable surface. Registry bindings are not accepted here. */ readonly request: VerificationRunRequestV1; } type VerificationLeaseFailure = Extract; type VerificationLeaseSuccess = Extract; type VerificationIssuanceCoordinatorResult = { readonly route: 'legacy'; readonly handled: false; readonly reason: 'coordinator_disabled'; } | { readonly route: 'governed'; readonly handled: true; readonly issued: false; readonly phase: 'authority'; readonly code: 'authority_unavailable'; readonly message: string; } | { readonly route: 'governed'; readonly handled: true; readonly issued: false; readonly phase: 'workspace'; readonly code: 'workspace_identity_unavailable' | 'workspace_mismatch' | 'workspace_snapshot_unavailable' | 'workspace_snapshot_invalid'; readonly message: string; } | { readonly route: 'governed'; readonly handled: true; readonly issued: false; readonly phase: 'run_contract'; readonly issues: readonly VerificationRunIssuanceIssue[]; } | { readonly route: 'governed'; readonly handled: true; readonly issued: false; readonly phase: 'check_registry'; readonly code: Extract['code'] | 'check_registry_unavailable'; readonly message: string; } | { readonly route: 'governed'; readonly handled: true; readonly issued: false; readonly phase: 'internal'; readonly code: 'bound_run_invariant_failed' | 'lease_result_mismatch'; readonly message: string; } | { readonly route: 'governed'; readonly handled: true; readonly issued: false; readonly phase: 'lease'; readonly code: VerificationLeaseFailure['code'] | 'lease_unavailable'; readonly message: string; } | { readonly route: 'governed'; readonly handled: true; readonly issued: true; readonly run: Extract; readonly lease: VerificationLeaseSuccess['lease']; readonly credential: VerificationLeaseSuccess['credential']; }; export declare class VerificationIssuanceCoordinator { #private; constructor(options: VerificationIssuanceCoordinatorOptions); issue(input: VerificationIssuanceCoordinatorInput): Promise; } export {}; //# sourceMappingURL=verification-issuance-coordinator.d.ts.map