import { InternalConfig } from './base'; export declare class Host { host: string; protocol: InternalConfig['upprotocol']; constructor(host: string, protocol: InternalConfig['upprotocol']); /** * @description 当前 host 是否为冻结状态 */ isFrozen(): boolean; /** * @param {number} time 单位秒,默认 20s * @description 冻结该 host 对象,该 host 将在指定时间内不可用 */ freeze(time?: number): void; /** * @description 解冻该 host */ unfreeze(): void; /** * @description 获取当前 host 的完整 url */ getUrl(): string; /** * @description 获取解冻时间 */ getUnfreezeTime(): number | undefined; } export declare class HostPool { private initHosts; /** * @description 缓存的 host 表,以 bucket 和 accessKey 作为 key */ private cachedHostsMap; /** * @param {string[]} initHosts * @description 如果在构造时传入 initHosts,则该 host 池始终使用传入的 initHosts 做为可用的数据 */ constructor(initHosts?: string[]); /** * @param {string} accessKey * @param {string} bucketName * @param {string[]} hosts * @param {InternalConfig['upprotocol']} protocol * @returns {void} * @description 注册可用 host */ private register; /** * @param {string} accessKey * @param {string} bucketName * @param {InternalConfig['upprotocol']} protocol * @returns {Promise} * @description 刷新最新的 host 数据,如果用户在构造时该类时传入了 host 或者已经存在缓存则不会发起请求 */ private refresh; /** * @param {string} accessKey * @param {string} bucketName * @param {InternalConfig['upprotocol']} protocol * @returns {Promise} * @description 获取一个可用的上传 Host,排除已冻结的 */ getUp(accessKey: string, bucketName: string, protocol: InternalConfig['upprotocol']): Promise; }