export interface ManifestFileEntry {
    path: string;
    type: 'File';
    timestamp: string;
}
export interface ManifestDirectoryEntry {
    path: string;
    type: 'Directory';
    timestamp: string;
}
export interface Manifest {
    manifest_id: string;
    version: string;
    installation_mode: string;
    installation_path: string;
    installation_date: string;
    installer_version: string;
    files: ManifestFileEntry[];
    directories: ManifestDirectoryEntry[];
}
export interface ManifestWithMetadata extends Manifest {
    manifest_file: string;
    application_version: string;
    files_count: number;
    directories_count: number;
}
/**
 * Create a new installation manifest
 * @param mode - Installation mode (Global/Path)
 * @param installPath - Installation path
 * @returns New manifest object
 */
export declare function createManifest(mode: string, installPath: string): Manifest;
/**
 * Add file entry to manifest
 * @param manifest - Manifest object
 * @param filePath - File path
 */
export declare function addFileEntry(manifest: Manifest, filePath: string): void;
/**
 * Add directory entry to manifest
 * @param manifest - Manifest object
 * @param dirPath - Directory path
 */
export declare function addDirectoryEntry(manifest: Manifest, dirPath: string): void;
/**
 * Save manifest to disk
 * @param manifest - Manifest object
 * @returns Path to saved manifest
 */
export declare function saveManifest(manifest: Manifest): string;
/**
 * Get all installation manifests
 * @returns Array of manifest objects
 */
export declare function getAllManifests(): ManifestWithMetadata[];
/**
 * Find manifest for a specific path and mode
 * @param installPath - Installation path
 * @param mode - Installation mode
 * @returns Manifest or null
 */
export declare function findManifest(installPath: string, mode: string): ManifestWithMetadata | null;
/**
 * Delete a manifest file
 * @param manifestFile - Path to manifest file
 */
export declare function deleteManifest(manifestFile: string): void;
/**
 * Get manifest directory path
 * @returns Manifest directory path
 */
export declare function getManifestDir(): string;
/**
 * Get file reference counts across all manifests
 * Returns a map of file path -> array of manifest IDs that reference it
 * @param excludeManifestId - Optional manifest ID to exclude from counting
 * @returns Map of file paths to referencing manifest IDs
 */
export declare function getFileReferenceCounts(excludeManifestId?: string): Map<string, string[]>;
/**
 * Check if a file is referenced by other installations
 * @param filePath - File path to check
 * @param excludeManifestId - Manifest ID to exclude from checking
 * @returns True if file is referenced by other installations
 */
export declare function isFileReferencedByOthers(filePath: string, excludeManifestId: string): boolean;
//# sourceMappingURL=manifest.d.ts.map