/**
 * Centralized Storage Paths Configuration
 * Single source of truth for all CCW storage locations
 *
 * All data is stored under ~/.ccw/ with project isolation via SHA256 hash
 */
export declare function getCCWHome(): string;
export declare const CCW_HOME: string;
/**
 * Calculate project identifier from project path
 * Returns a human-readable folder name based on the path
 * @param projectPath - Absolute or relative project path
 * @returns Folder-safe project identifier
 */
export declare function getProjectId(projectPath: string): string;
/**
 * Hierarchy information for a project path
 */
export interface HierarchyInfo {
    /** Current path's ID (flat form) */
    currentId: string;
    /** Parent directory's ID (if exists) */
    parentId: string | null;
    /** Relative path from parent */
    relativePath: string;
}
/**
 * Detect path hierarchy relationship
 * @param projectPath - Current working directory path
 * @returns Hierarchy information
 */
export declare function detectHierarchy(projectPath: string): HierarchyInfo;
/**
 * Clear hierarchy cache
 * Call this after migration completes
 */
export declare function clearHierarchyCache(): void;
/**
 * Ensure a directory exists, creating it if necessary
 * @param dirPath - Directory path to ensure
 */
export declare function ensureStorageDir(dirPath: string): void;
/**
 * Global storage paths (not project-specific)
 */
export declare const GlobalPaths: {
    /** Root CCW home directory */
    root: () => string;
    /** Config directory */
    config: () => string;
    /** Global settings file */
    settings: () => string;
    /** Recent project paths file */
    recentPaths: () => string;
    /** Databases directory */
    databases: () => string;
    /** MCP templates database */
    mcpTemplates: () => string;
    /** Logs directory */
    logs: () => string;
};
/**
 * Project-specific storage paths
 */
export interface ProjectPaths {
    /** Project root in CCW storage */
    root: string;
    /** CLI history directory */
    cliHistory: string;
    /** CLI history database file */
    historyDb: string;
    /** Memory store directory */
    memory: string;
    /** Memory store database file */
    memoryDb: string;
    /** Cache directory */
    cache: string;
    /** Dashboard cache file */
    dashboardCache: string;
    /** Config directory */
    config: string;
    /** CLI config file */
    cliConfig: string;
}
/**
 * Get storage paths for a specific project
 * Supports hierarchical storage structure with automatic migration
 * @param projectPath - Project root path
 * @returns Object with all project-specific paths
 */
export declare function getProjectPaths(projectPath: string): ProjectPaths;
/**
 * Get storage paths for a project by its ID (hash)
 * Use when iterating centralized storage without original project path
 * @param projectId - 16-character project ID hash
 * @returns Object with all project-specific paths
 */
export declare function getProjectPathsById(projectId: string): ProjectPaths;
/**
 * Unified StoragePaths object combining global and project paths
 */
export declare const StoragePaths: {
    global: {
        /** Root CCW home directory */
        root: () => string;
        /** Config directory */
        config: () => string;
        /** Global settings file */
        settings: () => string;
        /** Recent project paths file */
        recentPaths: () => string;
        /** Databases directory */
        databases: () => string;
        /** MCP templates database */
        mcpTemplates: () => string;
        /** Logs directory */
        logs: () => string;
    };
    project: typeof getProjectPaths;
    projectById: typeof getProjectPathsById;
};
/**
 * Information about a child project in hierarchical structure
 */
export interface ChildProjectInfo {
    /** Absolute path to the child project */
    projectPath: string;
    /** Relative path from parent project */
    relativePath: string;
    /** Project ID */
    projectId: string;
    /** Storage paths for this child project */
    paths: ProjectPaths;
}
/**
 * Recursively scan for child projects in hierarchical storage structure
 * @param projectPath - Parent project path
 * @returns Array of child project information
 */
export declare function scanChildProjects(projectPath: string): ChildProjectInfo[];
/**
 * Asynchronously scan for child projects in hierarchical storage structure
 * Non-blocking version using fs.promises for better performance
 * @param projectPath - Parent project path
 * @returns Promise resolving to array of child project information
 */
export declare function scanChildProjectsAsync(projectPath: string): Promise<ChildProjectInfo[]>;
/**
 * Legacy storage paths (for backward compatibility detection)
 */
export declare const LegacyPaths: {
    /** Old recent paths file location */
    recentPaths: () => string;
    /** Old project-local CLI history */
    cliHistory: (projectPath: string) => string;
    /** Old project-local memory store */
    memory: (projectPath: string) => string;
    /** Old project-local cache */
    cache: (projectPath: string) => string;
    /** Old project-local CLI config */
    cliConfig: (projectPath: string) => string;
};
/**
 * Check if legacy storage exists for a project
 * Useful for migration warnings or detection
 * @param projectPath - Project root path
 * @returns true if any legacy storage is present
 */
export declare function isLegacyStoragePresent(projectPath: string): boolean;
/**
 * Get CCW home directory (for external use)
 */
export declare function getCcwHome(): string;
/**
 * Initialize global storage directories
 * Creates the base directory structure if not present
 */
export declare function initializeGlobalStorage(): void;
/**
 * Initialize project storage directories
 * @param projectPath - Project root path
 */
export declare function initializeProjectStorage(projectPath: string): void;
//# sourceMappingURL=storage-paths.d.ts.map