/**
 * Storage abstraction for S3/GCS
 */
import { S3Client } from '@aws-sdk/client-s3';
export interface StorageConfig {
    provider: 's3' | 'gcs';
    bucket: string;
    region?: string;
    accessKeyId?: string;
    secretAccessKey?: string;
}
export interface StorageObject {
    key: string;
    content: Buffer | string;
    contentType?: string;
    metadata?: Record<string, string>;
}
export declare class StorageClient {
    protected config: StorageConfig;
    protected s3Client: S3Client;
    protected bucket: string;
    constructor(config: StorageConfig);
    upload(object: StorageObject): Promise<string>;
    download(key: string): Promise<Buffer>;
    delete(key: string): Promise<void>;
    getPresignedUrl(key: string, expiresIn: number): Promise<string>;
    objectExists(key: string): Promise<boolean>;
}
//# sourceMappingURL=storage.d.ts.map