export type StorageBackendKindLite = 'LOCAL' | 'ONEDRIVE' | 'S3' | 'GOOGLE_DRIVE';
export interface UploadInput {
    organizationId: string;
    userId: string;
    bindingId: string;
    path: string;
    content: Buffer;
    mimeType?: string;
}
export interface UploadResult {
    fileId: string;
    externalId?: string;
    sizeBytes: number;
    sha256: string;
}
export interface DownloadInput {
    organizationId: string;
    fileId: string;
}
export interface ListInput {
    bindingId: string;
    organizationId: string;
    prefix?: string;
    limit?: number;
}
export interface StorageAdapter {
    readonly kind: StorageBackendKindLite;
    isConfigured(config: Record<string, unknown>, encryptedSecret: string | null): boolean;
    upload(args: {
        config: Record<string, unknown>;
        encryptedSecret: string | null;
        path: string;
        content: Buffer;
    }): Promise<{
        externalId?: string;
    }>;
    download(args: {
        config: Record<string, unknown>;
        encryptedSecret: string | null;
        path: string;
        externalId?: string;
    }): Promise<Buffer>;
}
