export interface SupabaseStorageConfig {
    url: string;
    anonKey: string;
    bucket: string;
}
export interface DocumentUploadResult {
    id: string;
    path: string;
    url: string;
    size: number;
    mimeType: string;
    uploadedAt: Date;
}
export interface DocumentVersion {
    id: string;
    documentId: string;
    version: number;
    path: string;
    size: number;
    uploadedAt: Date;
    metadata?: Record<string, any>;
}
export declare class SupabaseStorageManager {
    private client;
    private bucket;
    constructor(config: SupabaseStorageConfig);
    initializeBucket(): Promise<void>;
    uploadDocument(file: Buffer | File, fileName: string, metadata?: Record<string, any>): Promise<DocumentUploadResult>;
    downloadDocument(path: string): Promise<Buffer>;
    deleteDocument(path: string): Promise<void>;
    listDocuments(prefix?: string): Promise<Array<{
        name: string;
        id: string;
        updated_at: string;
        size: number;
        metadata: Record<string, any>;
    }>>;
    createDocumentVersion(originalPath: string, newFile: Buffer | File, version: number, metadata?: Record<string, any>): Promise<DocumentVersion>;
    getDocumentVersions(documentId: string): Promise<DocumentVersion[]>;
    private sanitizeFileName;
    private generateDocumentId;
    private getMimeType;
    getStorageStats(): Promise<{
        totalFiles: number;
        totalSize: number;
        bucketName: string;
    }>;
}
//# sourceMappingURL=supabase.d.ts.map