import { execFileSync } from 'node:child_process';
import type { StateManager } from './StateManager.js';
export declare const DEFAULT_BUILD_CONTEXT_MAX_AGE_MS: number;
export interface SessionBuildContextEntry {
    spawnCwd: string;
    currentCwd: string;
    branch?: string;
    updatedAt: number;
}
export type SessionBuildContextState = Record<string, SessionBuildContextEntry>;
export interface SessionBuildContextRestore {
    entry: SessionBuildContextEntry;
    note: string;
}
export declare function isEligibleBuildContextCwd(spawnCwd: string, currentCwd: string): boolean;
export declare function formatBuildContextRestoreNote(entry: SessionBuildContextEntry): string;
export declare class SessionBuildContextStore {
    private readonly state;
    private readonly opts;
    constructor(state: StateManager, opts?: {
        now?: () => number;
        execFileSync?: typeof execFileSync;
        maxAgeMs?: number;
    });
    record(tmuxSession: string, spawnCwd: string, currentCwd: string): void;
    getRestore(tmuxSession: string): SessionBuildContextRestore | null;
    readAll(): SessionBuildContextState;
    private writeAll;
    private readBranch;
    private now;
    private maxAgeMs;
}
//# sourceMappingURL=SessionBuildContextStore.d.ts.map