import { ProjectConfig, I18nConfig } from "../types";
export declare class FileSystemManager {
    private readonly mycontextDir;
    private readonly contextDir;
    /**
     * Initialize a new project directory structure
     */
    initializeProject(projectName: string, description: string, workingDir: string, useCurrentDir?: boolean, scope?: string[], ignore?: string[], i18n?: I18nConfig): Promise<ProjectConfig>;
    /**
     * Read a file from the filesystem
     */
    readFile(filePath: string): Promise<string>;
    /**
     * Write a file to the filesystem
     */
    writeFile(filePath: string, content: string): Promise<void>;
    /**
     * Check if a file or directory exists
     */
    exists(filePath: string): Promise<boolean>;
    /**
     * Ensure a directory exists (create if it doesn't)
     */
    ensureDir(dirPath: string): Promise<void>;
    /**
     * Check if a directory is a MyContext project
     */
    isMyContextProject(dir: string): Promise<boolean>;
    /**
     * Get project configuration
     */
    getProjectConfig(projectPath: string): Promise<ProjectConfig | null>;
    /**
     * Update project configuration
     */
    updateProjectConfig(projectPath: string, updates: Partial<ProjectConfig>): Promise<void>;
    /**
     * List context files
     */
    listContextFiles(projectPath: string): Promise<string[]>;
    /**
     * Create a PRD template
     */
    private createPRDTemplate;
    /**
     * Create the prompt guard template
     */
    private createAlignTemplate;
    /**
     * Create atomic file operations
     */
    atomicWrite(filePath: string, content: string): Promise<void>;
    /**
     * Backup a file
     */
    backupFile(filePath: string): Promise<string>;
    /**
     * Restore a file from backup
     */
    restoreFile(backupPath: string, targetPath: string): Promise<void>;
    /**
     * Detect the lib directory in the project
     * Returns src/lib/ if src directory exists, otherwise lib/
     */
    detectLibDirectory(projectPath: string): Promise<string>;
    /**
     * Copy InstantDB template files to the project's lib directory
     */
    copyInstantDBTemplates(projectPath: string): Promise<void>;
}
//# sourceMappingURL=fileSystem.d.ts.map