import { SasTokenResponse, UploadOptions, UploadResult, FileInfo } from '../types/azure.type';
export interface AzureStorageOptions {
    serverUrl: string;
    apiKey: string;
    timeout?: number;
}
/**
 * Service for handling Azure Blob Storage operations
 */
export declare class AzureStorageService {
    private serverUrl;
    private apiKey;
    private timeout;
    private readonly maxRetries;
    constructor(options: AzureStorageOptions);
    /**
     * Requests a SAS token from the server
     */
    requestSasToken(): Promise<SasTokenResponse | null>;
    /**
     * Uploads a single file to Azure Blob Storage
     */
    uploadFile(options: UploadOptions): Promise<UploadResult>;
    /**
     * Uploads a file with retry logic
     */
    uploadFileWithRetry(options: UploadOptions): Promise<UploadResult>;
    /**
     * Uploads multiple files in parallel
     */
    uploadFiles(files: FileInfo[], sasTokenData: SasTokenResponse['data']): Promise<UploadResult[]>;
    /**
     * Validates file type against allowed types
     */
    validateFileType(fileName: string, allowedTypes: string[]): boolean;
    /**
     * Gets content type for a file
     */
    getContentType(fileName: string): string;
    /**
     * Gets file information including size and content type
     */
    getFileInfo(filePath: string): FileInfo | null;
}
export default AzureStorageService;
