import type { GitClient } from "../ports/git.js"; import type { FileSystem } from "../ports/filesystem.js"; import type { RepoObservation } from "./repo-state-types.js"; export type { WorldlineLayer, RepoTransitionKind, RepoSemanticTransitionKind, RepoSemanticTransitionAuthority, RepoSemanticTransitionPhase, RepoTransition, RepoSemanticTransition, WorkspaceOverlaySummary, RepoObservation, } from "./repo-state-types.js"; export declare class RepoStateTracker { private readonly cwd; private readonly fs; private readonly gitClient; private checkoutEpoch; private snapshot; private observation; private initialization; private readonly startedAtSec; private hasObservedTransition; /** Pending observe promise used for debounce coalescing. */ private pendingObserve; /** Timestamp of the last completed observation (ms since epoch). */ private lastObservedAtMs; private readonly debounceMs; constructor(cwd: string, fs: FileSystem, gitClient: GitClient, options?: { debounceMs?: number; }); /** * Observe the current repo state. * * If another observe() call is already in flight, this returns the same * pending result (coalescing). If a previous observation completed within * the debounce window, the cached result is returned immediately without * spawning new git processes. */ observe(): Promise; initialize(): Promise; getState(): RepoObservation; /** Core observation logic, separated from debounce/coalesce control. */ private performObserve; } //# sourceMappingURL=repo-state.d.ts.map