/**
 * Upload operations for DatabaseService
 *
 * Handles all CRUD operations for uploaded_files table
 * tracking Datalab cloud file uploads.
 */
import Database from 'better-sqlite3';
import { UploadedFile } from '../../../models/uploaded-file.js';
/**
 * Insert an uploaded file record
 *
 * @param db - Database connection
 * @param data - Uploaded file data
 * @returns string - The uploaded file ID
 */
export declare function insertUploadedFile(db: Database.Database, data: UploadedFile): UploadedFile;
/**
 * Get an uploaded file by ID
 *
 * @param db - Database connection
 * @param id - Uploaded file ID
 * @returns UploadedFile | null
 */
export declare function getUploadedFile(db: Database.Database, id: string): UploadedFile | null;
/**
 * Get an uploaded file by file hash (for deduplication)
 *
 * @param db - Database connection
 * @param fileHash - SHA-256 hash of the file
 * @returns UploadedFile | null - The first matching upload or null
 */
export declare function getUploadedFileByHash(db: Database.Database, fileHash: string): UploadedFile | null;
/**
 * List uploaded files with optional filtering
 *
 * @param db - Database connection
 * @param options - Optional filter options (status, limit, offset)
 * @returns UploadedFile[] - Array of uploaded files
 */
export declare function listUploadedFiles(db: Database.Database, options?: {
    status?: string;
    limit?: number;
    offset?: number;
}): UploadedFile[];
/**
 * Update uploaded file status
 *
 * @param db - Database connection
 * @param id - Uploaded file ID
 * @param status - New upload status
 * @param errorMessage - Optional error message (for 'failed' status)
 */
export declare function updateUploadedFileStatus(db: Database.Database, id: string, status: 'pending' | 'uploading' | 'confirming' | 'complete' | 'failed', errorMessage?: string): void;
/**
 * Update uploaded file with Datalab file ID and reference after successful upload
 *
 * @param db - Database connection
 * @param id - Uploaded file ID
 * @param datalabFileId - Datalab cloud file ID
 * @param datalabReference - Datalab reference string
 */
export declare function updateUploadedFileDatalabInfo(db: Database.Database, id: string, datalabFileId: string, datalabReference: string | null): void;
/**
 * Delete an uploaded file record
 *
 * @param db - Database connection
 * @param id - Uploaded file ID
 * @returns boolean - true if a record was deleted
 */
export declare function deleteUploadedFile(db: Database.Database, id: string): boolean;
//# sourceMappingURL=upload-operations.d.ts.map