import { OnModuleInit } from "@nestjs/common";
export declare class ObjectStorageService implements OnModuleInit {
    private readonly logger;
    readonly bucket: string;
    private readonly endpoint;
    private readonly publicEndpoint;
    private readonly region;
    private ready;
    private readonly credentials;
    private readonly client;
    private readonly signingClient;
    private createClient;
    onModuleInit(): Promise<void>;
    private applyCors;
    /**
     * Tight IAM policies often allow object Put/Get/Delete but not HeadBucket
     * (`s3:ListBucket`). HeadObject on a missing key then returns 403, not 404,
     * so a Put of a tiny sentinel is the check that actually matches this policy.
     */
    private assertObjectAccess;
    private ensureBucket;
    private available;
    putObject(objectKey: string, body: Uint8Array, contentType: string): Promise<void>;
    signedUpload(objectKey: string, contentType: string): Promise<string>;
    signedDownload(objectKey: string, fileName: string, contentType: string): Promise<string>;
    inspect(objectKey: string): Promise<{
        size: number;
        bytes: Uint8Array<ArrayBuffer>;
    }>;
    getObjectBytes(objectKey: string): Promise<Uint8Array>;
    s3Config(): {
        bucket: string;
        region: string;
        endpoint: string | undefined;
        accessKey: string | undefined;
        secret: string | undefined;
    };
    delete(objectKey: string): Promise<void>;
}
//# sourceMappingURL=object-storage.service.d.ts.map