import { IStorageProvider } from './storage.interface.js';
import { Readable } from 'node:stream';
export interface OCIStorageProviderConfiguration {
    bucket_name: string;
    fingerprint: string;
    namespace: string;
    private_key?: string;
    private_key_path?: string;
    region: string;
    tenancy: string;
    user: string;
}
export declare class OCIStorageProvider implements IStorageProvider {
    private readonly bucketName;
    private readonly namespace;
    private readonly ociClient;
    private readonly region;
    constructor(config: OCIStorageProviderConfiguration);
    /**
     * Copies a file from one location to another in the same bucket.
     * @param source - The source object name.
     * @param destination - The destination object name.
     */
    copyFile(source: string, destination: string): Promise<void>;
    deleteFile(key: string): Promise<void>;
    deleteFiles(keys: string[]): Promise<void>;
    fileExists(key: string): Promise<boolean>;
    getFileUrl(key: string): Promise<string>;
    listFiles(prefix?: string): Promise<string[]>;
    uploadFile(key: string, body: Buffer | Readable | ReadableStream, mimeType?: string): Promise<void>;
}
