import { type HumanScopeBinding } from "../approval/human.js"; import type { CoordinationClock } from "../coordination/clock.js"; import { type MutationLock } from "../recovery/service.js"; /** Read-only path/capacity admission, using the same rules as normal delivery and no Provider call. */ export declare function preflightQualificationResources(projectRoot: string, input: unknown): { root: string; commonDir: string; loadedConfig: { configured: boolean; config: import("./types.js").WorktreeDeliveryConfig; legacyBinding?: import("./types.js").WorktreeHostBinding; }; hostBinding: import("./types.js").WorktreeHostBindingObservation; loadedLeases: { values: import("./types.js").WorkspaceLease[]; errors: string[]; }; observedWorktrees: import("./types.js").WorktreeRecord[]; topology: import("./types.js").WorkspaceTopology; qualificationResources: { approvalRef: string; reservedAt: string; phase: "reserved" | "mkdir-owned" | "add-started" | "ready" | "released"; status: "reserved" | "mkdir-owned" | "add-started" | "ready" | "released" | "retained"; authorityRoot: string; path: string; operations: ["import-source", "create-once", "observe", "close-exact"]; branch: string; fixtureId: string; resourceId: string; clientId: string; sourceSha: string; }[]; capacity: { limit: number; used: number; available: number; }; }; /** One local lock and one durable reservation event for the whole batch; no workspace creation or network write. */ export declare function reserveQualificationWorkspacesLocked(lock: MutationLock, projectRoot: string, approvalRef: string, binding: HumanScopeBinding, clock: CoordinationClock): void; /** Actual registered empty synthetic checkout, not a same-path/same-SHA ownership inference. */ export declare function observeQualificationWorkspace(projectRoot: string, approvalRef: string, resourceId: string): { resourceId: string; path: string; branch: string; head: string; commonDir: string; gitDir: string; identity: { device: number; inode: number; birthtimeMs: number; parentDevice: number; parentInode: number; parentBirthtimeMs: number; }; assets: { entries: { kind: "file" | "symlink" | "missing"; sha256: string; path: string; status: string; category: "untracked" | "ignored" | "tracked"; mode: number; size: number; }[]; indexHash: string; }; metadataHash: string; evidenceHash: string; }; /** Exact approved resources only; no production flag, extra clone, credential copy or checkout switch. */ export declare function createQualificationWorkspaceLocked(lock: MutationLock, projectRoot: string, approvalRef: string, resourceId: string): { resourceId: string; path: string; branch: string; head: string; commonDir: string; gitDir: string; identity: { device: number; inode: number; birthtimeMs: number; parentDevice: number; parentInode: number; parentBirthtimeMs: number; }; assets: { entries: { kind: "file" | "symlink" | "missing"; sha256: string; path: string; status: string; category: "untracked" | "ignored" | "tracked"; mode: number; size: number; }[]; indexHash: string; }; metadataHash: string; evidenceHash: string; }; export type CloseOutcome = "released" | "retained"; export interface CloseResourceResult { resourceId: string; path: string; branch: string; evidenceHash: string; outcome: CloseOutcome; reason?: string; } /** Exact owned-resource close; re-uses the resource-owner apply lock and the same human receipt chain as create. */ export declare function closeQualificationWorkspaceLocked(lock: MutationLock, projectRoot: string, approvalRef: string, resourceId: string): CloseResourceResult; //# sourceMappingURL=qualification.d.ts.map