import { AccountSASPermissionsLike, AccountSASResourceTypes, BlobGenerateSasUrlOptions, BlobItem, BlobSASPermissionsLike, BlobServiceClient, ContainerGenerateSasUrlOptions, ContainerSASPermissionsLike, ServiceGenerateAccountSasUrlOptions } from '@azure/storage-blob';
import { GetAccountSasUrlResponse, GetBlockBlobSasUrlResponse, GetContainerSasUrlResponse } from './azure-storage-blob.interface';
/**
 * request headers
 * https://learn.microsoft.com/rest/api/storageservices/put-blob#request-headers-all-blob-types
 */
export declare class AzureStorageBlobService {
    private readonly blobServiceClient;
    private containerName?;
    constructor(blobServiceClient: BlobServiceClient);
    getClient(): BlobServiceClient;
    getContainerName(): string | undefined;
    convertToResourceTypes(resourceTypeMap?: Omit<AccountSASResourceTypes, 'toString'>): string;
    getAccountSasUrl(expiresOn?: Date, permissions?: AccountSASPermissionsLike, resourceTypeMap?: Omit<AccountSASResourceTypes, 'toString'>, options?: ServiceGenerateAccountSasUrlOptions): GetAccountSasUrlResponse;
    getContainerSasUrl(containerName: string, permissions?: ContainerSASPermissionsLike, options?: Omit<ContainerGenerateSasUrlOptions, 'permissions'>): Promise<GetContainerSasUrlResponse>;
    getBlockBlobSasUrl(containerName: string, blobName: string, permissions?: BlobSASPermissionsLike, options?: Omit<BlobGenerateSasUrlOptions, 'permissions'>): Promise<GetBlockBlobSasUrlResponse>;
    getUploadable(containerName: string, blobName: string, expiresIn?: number): Promise<{
        upload: {
            method: string;
            url: string;
            headers: Record<string, string | number>;
            expiresIn: number;
        };
        download: {
            method: string;
            url: string;
            expiresIn: number;
        };
    }>;
    listFiles(destination: string, containerName: string): Promise<BlobItem[]>;
    deleteFile(container: string, blob: string): Promise<import("@azure/storage-blob").BlobDeleteResponse>;
    deleteFileIfExists(container: string, blob: string): Promise<import("@azure/storage-blob").BlobDeleteIfExistsResponse>;
    downloadStream(container: string, blob: string): Promise<import("@azure/storage-blob").BlobDownloadResponseParsed>;
}
