import { Storage } from "@google-cloud/storage";
import { BaseDirectory, ContentHeaders, EntityCollectionPage, ExpiryOptions, Metadata, ObjectProperties, ObjectReference, TransferData } from "@itwin/object-storage-core";
import { GoogleStorageConfig } from "./GoogleStorageConfig";
export declare class StorageWrapper {
    private readonly _storage;
    private readonly _config;
    constructor(_storage: Storage, _config: Pick<GoogleStorageConfig, "bucketName">);
    downloadFile(reference: ObjectReference, destination?: string): Promise<Buffer>;
    uploadFile(reference: ObjectReference, data?: TransferData, metadata?: Metadata, headers?: ContentHeaders, chunkSize?: number): Promise<void>;
    getFilesNextPage(options: {
        directory: BaseDirectory;
        maxPageSize: number;
        continuationToken?: string;
    }): Promise<EntityCollectionPage<ObjectReference>>;
    deleteFile(reference: ObjectReference): Promise<void>;
    copyFile(sourceBucket: string, sourceReference: ObjectReference, destinationReference: ObjectReference): Promise<void>;
    getSignedUrl(action: "read" | "write", reference: ObjectReference, expiry?: ExpiryOptions): Promise<string>;
    updateMetadata(reference: ObjectReference, metadata: Metadata): Promise<void>;
    getObjectProperties(reference: ObjectReference): Promise<ObjectProperties>;
    fileExists(reference: ObjectReference): Promise<boolean>;
    private bucketObject;
    private fileObject;
}
//# sourceMappingURL=StorageWrapper.d.ts.map