import { type HumanScopeBinding } from "../approval/human.js"; import { type MutationLock } from "../recovery/service.js"; import { type RepositoryContext } from "../repository/git.js"; import type { CoordinationClock } from "./clock.js"; import type { CoordinationCommitIntent, CoordinationTransport, GitCoordinationStore } from "./store.js"; import type { CoordinationRecord } from "./types.js"; type SourceReader = Pick; /** Local target facts only; not opening a source machine is explicitly unknown, never evidence of offline/clean. */ export declare function observeTakeoverRisk(context: RepositoryContext, held: MutationLock, current: CoordinationRecord, source: SourceReader, binding: HumanScopeBinding): { schemaVersion: "takeover-risk/1"; target: { workspace: string; commonDir: string; uniqueCommits: number; unpushedCommits: number; hostId: string; head: string; branch: string; actor: string; assets: { entries: { kind: "file" | "symlink" | "missing"; sha256: string; path: string; status: string; category: "untracked" | "ignored" | "tracked"; mode: number; size: number; }[]; indexHash: string; }; handling: "retain-all-assets"; remoteOnlyCommits: number; }; source: { kind: "not-observed"; reason: "source-machine-not-accessed"; historicalProofHash?: string | undefined; }; remote: { endpointHash: string; head: string; repositoryId: string; ref: string; }; risks: ["source-assets-unknown", "external-writers-not-fenced", "old-assets-retained", "not-zero-loss-transfer"]; }; /** Native composition supplies observers; the only user input is a durable approval reference. */ export declare function prepareTakeover(context: RepositoryContext, held: MutationLock, approvalRef: string, store: GitCoordinationStore, source: SourceReader, observeBinding: () => HumanScopeBinding, refreshClock: () => CoordinationClock): { assertCandidate(intent: CoordinationCommitIntent): void; apply(): CoordinationRecord; }; export {}; //# sourceMappingURL=takeover.d.ts.map