export declare const ATTACHMENTS_ROOT: string;
/**
 * Validate that a value is a UUID. Throws if not — prevents path traversal
 * when constructing filesystem paths from user-supplied input.
 */
export declare function assertUUID(value: string, label: string): void;
export interface AttachmentMeta {
    attachmentId: string;
    scope: string;
    filename: string;
    mimeType: string;
    sizeBytes: number;
    storedAt: string;
}
/**
 * Resolve the directory for a specific attachment under an account.
 * Returns the absolute path. Does NOT verify existence.
 */
export declare function attachmentDir(accountId: string, attachmentId: string): string;
/**
 * Read the .meta.json sidecar for an attachment.
 * Returns null if the directory or meta file doesn't exist.
 * Throws on parse errors (corrupt meta = caller's problem).
 */
export declare function readMeta(accountId: string, attachmentId: string): Promise<AttachmentMeta | null>;
/**
 * Find the data file (non-.meta.json) in an attachment directory.
 * Returns the absolute path, or null if no data file exists.
 */
export declare function findDataFile(accountId: string, attachmentId: string): Promise<string | null>;
/**
 * Remove an attachment directory from disk.
 * No-op if the directory doesn't exist (web-ingested documents have no file).
 * Returns true if a directory was removed, false if it didn't exist.
 */
export declare function removeAttachmentDir(accountId: string, attachmentId: string): Promise<boolean>;
//# sourceMappingURL=attachments.d.ts.map