export interface TOSCDNConfig {
    accessKeyId: string;
    accessKeySecret: string;
    region: string;
    cdnDomain?: string;
}
export interface CDNPreloadResult {
    success: boolean;
    taskId?: string;
    url?: string;
    error?: string;
}
export interface CDNRefreshResult {
    success: boolean;
    taskId?: string;
    url?: string;
    error?: string;
}
export interface CDNTaskResult {
    success: boolean;
    taskId?: string;
    url?: string;
    error?: string;
    taskType: 'refresh' | 'prefetch';
}
export declare class TOSCDNService {
    private config;
    private endpoint;
    private readonly HEADER_KEYS_TO_IGNORE;
    constructor(config: TOSCDNConfig);
    /**
     * 判断URL是文件还是目录
     */
    private isDirectory;
    /**
     * 刷新CDN缓存
     */
    refreshCDN(url: string): Promise<CDNRefreshResult>;
    /**
     * 预热CDN缓存
     */
    preloadCDN(url: string): Promise<CDNPreloadResult>;
    /**
     * 先刷新后预热CDN缓存（推荐使用）
     */
    refreshAndPreloadCDN(url: string): Promise<CDNTaskResult[]>;
    /**
     * 构建请求头（包含签名）
     */
    private buildHeaders;
    /**
     * 为GET请求构建请求头（包含签名）
     */
    private buildHeadersForGet;
    /**
     * 计算签名 - 完全按照官方代码逻辑
     */
    private calculateSignature;
    /**
     * 为GET请求计算签名
     */
    private calculateSignatureForGet;
    /**
     * HMAC-SHA256 计算 - 返回二进制数据
     */
    private hmac;
    /**
     * SHA256 哈希计算
     */
    private hash;
    /**
     * 获取请求体的 SHA256 哈希
     */
    private getBodySha;
    /**
     * 构建查询参数字符串
     */
    private queryParamsToString;
    /**
     * 获取签名头部
     */
    private getSignHeaders;
    /**
     * URI 转义
     */
    private uriEscape;
    /**
     * 批量预热CDN
     */
    preloadCDNBatch(urls: string[]): Promise<{
        success: number;
        failed: number;
        results: CDNPreloadResult[];
    }>;
    /**
     * 查询CDN任务配额
     */
    queryTaskQuota(): Promise<any>;
    /**
     * 验证配置
     */
    validateConfig(): boolean;
}
//# sourceMappingURL=TOSCDNService.d.ts.map