import { AgentSpec } from '../types/core.js';
export declare class PathResolver {
    private static readonly PLATFORM;
    private static readonly IS_WSL;
    private static readonly IS_WSL2;
    private static readonly IS_DOCKER;
    private static readonly IS_CI;
    private static detectDockerEnvironment;
    private static detectCIEnvironment;
    static resolveAgentsDirectory(): string;
    static resolveClaudeDirectory(): string;
    private static resolveDockerClaudeDirectory;
    private static resolveCIClaudeDirectory;
    private static resolveWSL2ClaudeDirectory;
    private static resolveWSLClaudeDirectory;
    private static getWindowsUsernameFromWSL2;
    private static convertWindowsPathToWSL2;
    private static resolveWindowsClaudeDirectory;
    private static resolveMacOSClaudeDirectory;
    private static resolveLinuxClaudeDirectory;
    static resolveOutputDirectory(outputDir: string): string;
    static resolveTempDirectory(): string;
    private static resolveWindowsTempDirectory;
    private static resolveLinuxTempDirectory;
    static isAbsolute(path: string): boolean;
    static normalizePath(path: string): string;
    static ensureDirectory(dirPath: string): Promise<void>;
    private static pathExists;
    static isWritable(path: string): Promise<boolean>;
    static getAvailableSpace(path: string): Promise<number>;
    static getPlatformInfo(): {
        platform: string;
        isWSL: boolean;
        isWSL2: boolean;
        isDocker: boolean;
        isCI: boolean;
        home: string;
        claudeDir: string;
        agentsDir: string;
        tempDir: string;
        permissions: {
            claudeDirWritable: boolean;
            tempDirWritable: boolean;
        };
    };
    static getComprehensivePlatformInfo(): Promise<{
        platform: string;
        isWSL: boolean;
        isWSL2: boolean;
        isDocker: boolean;
        isCI: boolean;
        home: string;
        claudeDir: string;
        agentsDir: string;
        tempDir: string;
        permissions: {
            claudeDirWritable: boolean;
            tempDirWritable: boolean;
            claudeDirExists: boolean;
            tempDirExists: boolean;
        };
        diskSpace: {
            claudeDirSpace: number;
            tempDirSpace: number;
        };
    }>;
    static validateAgentsDirectory(agentsDir?: string): string;
    static createSecureTempDirectory(prefix?: string): Promise<string>;
}
export declare class FileSystemManager {
    private agentsDir;
    private outputDir;
    private tempDir;
    constructor(agentsDir: string, outputDir: string, tempDir: string);
    initialize(): Promise<void>;
    private ensureDirectoryWithValidation;
    listAgentFiles(): Promise<string[]>;
    readAgentSpec(agentName: string): Promise<AgentSpec>;
    writeAgentSpec(agentName: string, spec: AgentSpec): Promise<void>;
    writeOutput(sessionId: string, step: string, content: string): Promise<string>;
    readOutput(sessionId: string, step?: string): Promise<string[]>;
    cleanupTempFiles(olderThanMs?: number): Promise<void>;
    private parseAgentSpec;
    private extractSpecFromSections;
    private extractMetadata;
    private extractCapabilities;
    private extractPrompt;
    private extractWorkflow;
    private extractValue;
    private extractList;
    private extractListItems;
    private serializeAgentSpec;
    private addOutputMetadata;
    private extractTimestampFromFilename;
    private formatZodError;
    getFileSystemStats(): Promise<{
        agentsCount: number;
        outputSessions: number;
        tempFiles: number;
        totalSize: number;
    }>;
    private getOutputSessions;
    private getTempFiles;
}
export declare class AgentSpecReader {
    private fsManager;
    constructor(fsManager: FileSystemManager);
    getAllSpecs(): Promise<AgentSpec[]>;
    getSpecByName(agentName: string): Promise<AgentSpec>;
    getSpecsByCategory(category: string): Promise<AgentSpec[]>;
    getSpecsByTags(tags: string[]): Promise<AgentSpec[]>;
}
//# sourceMappingURL=filesystem.d.ts.map