import { readFile as defaultReadFile, writeFile as defaultWriteFile } from 'node:fs/promises';
import { buildCommandContext, type CommandContext } from '../../../app/command-context.js';
import { type GenerateStateResult } from '../../state/generate.js';
import { type OatLocalConfig } from '../../../config/oat-config.js';
import { dirExists, fileExists } from '../../../fs/io.js';
import { Command } from 'commander';
interface ProjectOpenDependencies {
    buildCommandContext: (options: Parameters<typeof buildCommandContext>[0]) => CommandContext;
    resolveProjectRoot: (cwd: string) => Promise<string>;
    resolveProjectsRoot: (repoRoot: string, env: NodeJS.ProcessEnv) => Promise<string>;
    readOatLocalConfig: (repoRoot: string) => Promise<OatLocalConfig>;
    writeOatLocalConfig: (repoRoot: string, config: OatLocalConfig) => Promise<void>;
    setActiveProject: (repoRoot: string, path: string) => Promise<void>;
    generateStateDashboard: (options: {
        repoRoot: string;
    }) => Promise<GenerateStateResult>;
    readFile: typeof defaultReadFile;
    writeFile: typeof defaultWriteFile;
    dirExists: typeof dirExists;
    fileExists: typeof fileExists;
    processEnv: NodeJS.ProcessEnv;
    now: () => Date;
}
export declare function createProjectOpenCommand(overrides?: Partial<ProjectOpenDependencies>): Command;
export {};
//# sourceMappingURL=index.d.ts.map