/**
 * File attachment types and interfaces for the knowledge graph system
 */
export interface FileUpload {
    buffer: Buffer;
    originalname: string;
    mimetype: string;
    size: number;
}
export interface FileMetadata {
    entityName: string;
    originalFilename: string;
    project: string;
    mimeType?: string;
    metadata?: Record<string, any>;
}
export interface ValidationResult {
    isValid: boolean;
    mimeType: string;
    hash: string;
    error?: string;
}
export interface FileStorageConfig {
    maxFileSize: number;
    maxFilesPerEntity: number;
    allowedMimeTypes: string[];
    sqliteStoragePath?: string;
    postgresLobSupport?: boolean;
}
export declare const DEFAULT_FILE_STORAGE_CONFIG: FileStorageConfig;
export interface FileAttachmentResult {
    fileId: string;
    success: boolean;
    error?: string;
}
export interface BatchFileResult {
    successful: FileAttachmentResult[];
    failed: FileAttachmentResult[];
    totalProcessed: number;
}
export interface FileAttachmentQueryOptions {
    includeContent?: boolean;
    mimeTypeFilter?: string[];
    sizeRange?: {
        min?: number;
        max?: number;
    };
    dateRange?: {
        from?: Date;
        to?: Date;
    };
}
export interface FileAttachmentSearchResult {
    fileId: string;
    originalFilename: string;
    mimeType: string;
    fileSize: number;
    uploadDate: Date;
    entityName: string;
    project: string;
    content?: Buffer;
}
//# sourceMappingURL=file-attachments.d.ts.map