import type { TrashItem } from '../types/index.js';
import type { TrashCleanupConfig, TrashCleanupResult } from '../types/safety.js';
/**
 * Load the trash manifest (list of all trashed items).
 */
export declare function loadManifest(projectId: string): Promise<TrashItem[]>;
/**
 * Move a directory to trash. Returns the TrashItem metadata.
 */
export declare function moveToTrash(projectId: string, itemType: TrashItem['itemType'], itemId: string, sourcePath: string, metadata: Record<string, unknown>): Promise<TrashItem>;
/**
 * Move JSON data to trash (for patterns/decisions stored in JSON arrays).
 * Creates a JSON file in the trash directory with the item data.
 */
export declare function moveDataToTrash(projectId: string, itemType: TrashItem['itemType'], itemId: string, data: unknown, metadata: Record<string, unknown>): Promise<TrashItem>;
/**
 * Restore an item from trash to its original location.
 */
export declare function restoreFromTrash(projectId: string, trashItemId: string): Promise<TrashItem | null>;
/**
 * Permanently remove a specific item from trash.
 */
export declare function purgeTrashItem(projectId: string, trashItemId: string): Promise<boolean>;
/**
 * Purge all items from trash.
 */
export declare function purgeAllTrash(projectId: string): Promise<number>;
/**
 * Count files in a directory recursively (for project delete summary).
 */
export declare function countFiles(dirPath: string): Promise<number>;
/**
 * Check if a path exists.
 */
export declare function pathExists(p: string): Promise<boolean>;
/**
 * Recursively sum file sizes in a directory.
 */
export declare function getDirSize(dirPath: string): Promise<number>;
/**
 * Auto-clean trash items that exceed age or total size limits.
 * Purges oldest items first. Lazy: call on trash operations.
 */
export declare function autoCleanTrash(projectId: string, config?: TrashCleanupConfig): Promise<TrashCleanupResult>;
//# sourceMappingURL=trash-store.d.ts.map