import type { FileSystem } from "../ports/filesystem.js"; import type { GitClient } from "../ports/git.js"; import { TARGET_GIT_TRANSITION_HOOKS } from "../git/target-git-hook-bootstrap.js"; import type { RepoTransition, WorkspaceOverlaySummary } from "./repo-state.js"; export type GitHookBootstrapPosture = "absent" | "external_unknown" | "installed"; export type WorkspaceOverlayObservationMode = "inferred_between_tool_calls" | "hook_observed_checkout_boundaries"; export type WorkspaceOverlayLineagePosture = "stable" | "forked_after_transition"; export type WorkspaceOverlayBoundaryAuthority = "none" | "repo_snapshot" | "hook_observed"; export type WorkspaceOverlayDegradedReason = "target_repo_hooks_absent" | "target_repo_hooks_unrecognized" | "local_edit_watchers_absent"; export interface GitTransitionHookEvent { readonly hookName: (typeof TARGET_GIT_TRANSITION_HOOKS)[number]; readonly hookArgs: readonly string[]; readonly worktreeRoot: string; readonly observedAt: string; } export interface GitHookBootstrapStatus { readonly posture: GitHookBootstrapPosture; readonly configuredCoreHooksPath: string | null; readonly resolvedHooksPath: string; readonly requiredHooks: readonly string[]; readonly presentHooks: readonly string[]; readonly missingHooks: readonly string[]; readonly supportsCheckoutBoundaries: boolean; } export interface RuntimeWorkspaceOverlayFooting { readonly observationMode: WorkspaceOverlayObservationMode; readonly lineagePosture: WorkspaceOverlayLineagePosture; readonly boundaryAuthority: WorkspaceOverlayBoundaryAuthority; readonly degraded: true; readonly degradedReason: WorkspaceOverlayDegradedReason; readonly checkoutEpoch: number; readonly lastTransition: RepoTransition | null; readonly workspaceOverlayId: string | null; readonly workspaceOverlay: WorkspaceOverlaySummary | null; readonly hookBootstrap: GitHookBootstrapStatus; readonly latestHookEvent: GitTransitionHookEvent | null; } export declare function inspectGitHookBootstrap(fs: FileSystem, gitClient: GitClient, worktreeRoot: string, gitCommonDir: string): Promise; export declare function buildRuntimeWorkspaceOverlayFooting(fs: FileSystem, gitClient: GitClient, worktreeRoot: string, gitCommonDir: string, repoState: { readonly checkoutEpoch: number; readonly lastTransition: RepoTransition | null; readonly workspaceOverlayId: string | null; readonly workspaceOverlay: WorkspaceOverlaySummary | null; }): Promise; //# sourceMappingURL=runtime-workspace-overlay.d.ts.map