/**
 * File system utilities for the Idea Honing Tool
 *
 * These utilities handle reading, writing, and managing specification files and related data.
 */
import { SpecificationDocument, ChangeRecord } from '../models/specification.js';
/**
 * Creates the necessary directory structure for storing specifications
 *
 * @param projectId - Optional project identifier for project-specific directories
 * @returns Promise that resolves when directories are created
 */
export declare function createDirectoryStructure(projectId?: string): Promise<void>;
/**
 * Gets the path for a specification file
 *
 * @param specId - Specification identifier
 * @param projectId - Optional project identifier
 * @returns Path to the specification file
 */
export declare function getSpecificationPath(specId: string, projectId?: string): string;
/**
 * Gets the path for a specification metadata file
 *
 * @param specId - Specification identifier
 * @returns Path to the metadata file
 */
export declare function getMetadataPath(specId: string): string;
/**
 * Gets the path for a specification backup file
 *
 * @param specId - Specification identifier
 * @param version - Version number
 * @returns Path to the backup file
 */
export declare function getBackupPath(specId: string, version: number): string;
/**
 * Saves a specification document to the file system
 *
 * @param spec - Specification document to save
 * @returns Promise that resolves when the specification is saved
 */
export declare function saveSpecification(spec: SpecificationDocument): Promise<void>;
/**
 * Loads a specification document from the file system
 *
 * @param specId - Specification identifier
 * @param projectId - Optional project identifier
 * @returns Promise that resolves with the loaded specification
 */
export declare function loadSpecification(specId: string, projectId?: string): Promise<SpecificationDocument>;
/**
 * Creates a backup of a specification
 *
 * @param spec - Specification document to backup
 * @returns Promise that resolves when the backup is created
 */
export declare function createBackup(spec: SpecificationDocument): Promise<void>;
/**
 * Loads the change history for a specification
 *
 * @param specId - Specification identifier
 * @returns Promise that resolves with the change history
 */
export declare function loadChangeHistory(specId: string): Promise<ChangeRecord[]>;
/**
 * Saves a change record to the change history
 *
 * @param specId - Specification identifier
 * @param changeRecord - Change record to save
 * @returns Promise that resolves when the change record is saved
 */
export declare function saveChangeRecord(specId: string, changeRecord: ChangeRecord): Promise<void>;
/**
 * Lists all specifications in the system
 *
 * @param projectId - Optional project identifier to filter by
 * @returns Promise that resolves with an array of specification metadata
 */
export declare function listSpecifications(projectId?: string): Promise<any[]>;
