import type { PathService, ToolBootstrap } from "../runtime/ports/index.js";
import type { MediaPersistence } from "../runtime/infra/media-persistence.js";
import { DefaultPathService } from "../runtime/infra/default-path-service.js";
export declare class CliPathService extends DefaultPathService implements PathService {
    private readonly mediaPersistence;
    private readonly toolBootstrap;
    private activeWorkdir;
    constructor(mediaPersistence: MediaPersistence, toolBootstrap: ToolBootstrap);
    getActiveProjectRoot(): string;
    setActiveWorkdir(dir: string): void;
    /**
     * The directory seeded as the file/exec tools' initial CWD: setActiveWorkdir
     * pushes this value into toolBootstrap.setWorkdir → initCwd (the single CWD
     * source read via getCwd()). Note this is the SEED, not the live value — an
     * in-turn `exec("cd sub")` moves getCwd() without touching this. The permission
     * pipeline classifies cross-workspace ops against THIS project-level dir, not
     * getActiveProjectRoot() (also used for memory/sessions, may be a stale
     * projectStore dir). Falls back to getActiveProjectRoot() before first set.
     */
    getActiveWorkdir(): string;
    resolveProjectDir(projectId?: string): string | undefined;
}
