/**
 * Canonical RCASD path helpers for provenance file management.
 *
 * All provenance artifacts live under `.cleo/rcasd/{epicId}/` with
 * stage subdirectories created on-demand.
 *
 * @task T5200
 * @epic T4798
 */
/**
 * Strip suffixes from epic directory names.
 * E.g. `T4881_install-channels` -> `T4881`
 *
 * @param dirName - Directory name that may contain a suffix
 * @returns The normalized T#### epic ID
 */
export declare function normalizeEpicId(dirName: string): string;
/**
 * Get the absolute path to the `.cleo/rcasd/` base directory.
 *
 * @param cwd - Optional working directory override
 * @returns Absolute path to the rcasd base directory
 */
export declare function getRcasdBaseDir(cwd?: string): string;
/**
 * Get the absolute path to `.cleo/rcasd/{epicId}/`.
 * Uses the normalized epic ID (without suffixes).
 *
 * @param epicId - Epic identifier (e.g. `T4881`)
 * @param cwd - Optional working directory override
 * @returns Absolute path to the epic directory
 */
export declare function getEpicDir(epicId: string, cwd?: string): string;
/**
 * Search both `rcasd/` and legacy `rcsd/` for an existing epic directory.
 * Also checks suffixed directory names (e.g. `T4881_install-channels`
 * matches `T4881`).
 *
 * @param epicId - Epic identifier to search for
 * @param cwd - Optional working directory override
 * @returns Absolute path to the found directory, or null
 */
export declare function findEpicDir(epicId: string, cwd?: string): string | null;
/**
 * Get the stage subdirectory path for an epic.
 * Uses STAGE_SUBDIRS mapping, falling back to the raw stage name.
 *
 * @param epicId - Epic identifier
 * @param stage - Canonical stage name (e.g. `research`, `contribution`)
 * @param cwd - Optional working directory override
 * @returns Absolute path to the stage subdirectory
 */
export declare function getStagePath(epicId: string, stage: string, cwd?: string): string;
/**
 * Get the stage subdirectory path, creating it if it does not exist.
 *
 * @param epicId - Epic identifier
 * @param stage - Canonical stage name
 * @param cwd - Optional working directory override
 * @returns Absolute path to the (now existing) stage subdirectory
 */
export declare function ensureStagePath(epicId: string, stage: string, cwd?: string): string;
/**
 * Get the manifest path for an epic under the default rcasd directory.
 *
 * @param epicId - Epic identifier
 * @param cwd - Optional working directory override
 * @returns Absolute path to `.cleo/rcasd/{epicId}/_manifest.json`
 */
export declare function getManifestPath(epicId: string, cwd?: string): string;
/**
 * Search both `rcasd/` and `rcsd/` for an existing manifest file.
 * Checks suffixed directory names as well.
 *
 * @param epicId - Epic identifier
 * @param cwd - Optional working directory override
 * @returns Absolute path to the found manifest, or null
 */
export declare function findManifestPath(epicId: string, cwd?: string): string | null;
/**
 * Scan the rcasd root directory for loose `T####_*.md` files that are
 * not inside subdirectories.
 *
 * @param cwd - Optional working directory override
 * @returns Array of file info with extracted epic ID
 */
export declare function getLooseResearchFiles(cwd?: string): Array<{
    file: string;
    epicId: string;
    fullPath: string;
}>;
/**
 * List all epic directories across `rcasd/` and `rcsd/`.
 *
 * @param cwd - Optional working directory override
 * @returns Array of epic info with normalized IDs and original directory names
 */
export declare function listEpicDirs(cwd?: string): Array<{
    epicId: string;
    dirName: string;
    fullPath: string;
}>;
//# sourceMappingURL=rcasd-paths.d.ts.map