import { CosService } from './cos_service';
import { CosTransferManger } from './cos_transfer';
import type { CosXmlServiceConfig, TransferConfig } from './data_model/config';
import type { SessionQCloudCredentials, STSCredentialScope } from './data_model/credentials';
import type { DnsMapParameters } from './data_model/parameters';
import type { LogEntity, LogLevel } from './data_model/log';
declare class Cos {
    private emitter;
    private initialized;
    private cosServices;
    private cosTransfers;
    private scopeLimitCredentialsProvider;
    private logListeners;
    constructor();
    initWithPlainSecret(secretId: string, secretKey: string): Promise<void> | undefined;
    initWithSessionCredentialCallback(callback: () => Promise<SessionQCloudCredentials | null>): Promise<void> | undefined;
    initWithScopeLimitCredentialCallback(callback: (stsScopesArray: Array<STSCredentialScope>) => Promise<SessionQCloudCredentials | null>): Promise<void> | undefined;
    initCustomerDNS(dnsMap: Array<DnsMapParameters>): Promise<void> | undefined;
    initCustomerDNSFetch(callback: (domain: string) => Promise<Array<string> | null>): Promise<void> | undefined;
    forceInvalidationCredential(): Promise<void>;
    setCloseBeacon(isCloseBeacon: boolean): Promise<void>;
    registerDefaultService(config: CosXmlServiceConfig): Promise<CosService>;
    registerDefaultTransferManger(config: CosXmlServiceConfig, transferConfig?: TransferConfig): Promise<CosTransferManger>;
    registerService(key: string, config: CosXmlServiceConfig): Promise<CosService>;
    registerTransferManger(key: string, config: CosXmlServiceConfig, transferConfig?: TransferConfig): Promise<CosTransferManger>;
    hasDefaultService(): boolean;
    getDefaultService(): CosService;
    hasDefaultTransferManger(): boolean;
    getDefaultTransferManger(): CosTransferManger;
    hasService(key: string): boolean;
    getService(key: string): CosService;
    hasTransferManger(key: string): boolean;
    getTransferManger(key: string): CosTransferManger;
    enableLogcat(enable: boolean): Promise<void>;
    enableLogFile(enable: boolean): Promise<void>;
    addLogListener(key: string, callback: (logEntity: LogEntity) => void): Promise<void>;
    removeLogListener(key: string): Promise<void>;
    setMinLevel(minLevel: LogLevel): Promise<void>;
    setLogcatMinLevel(minLevel: LogLevel): Promise<void>;
    setFileMinLevel(minLevel: LogLevel): Promise<void>;
    setClsMinLevel(minLevel: LogLevel): Promise<void>;
    setDeviceID(deviceID: string): Promise<void>;
    setDeviceModel(deviceModel: string): Promise<void>;
    setAppVersion(appVersion: string): Promise<void>;
    setExtras(extras: object): Promise<void>;
    setLogFileEncryptionKey(key: Uint8Array, iv: Uint8Array): Promise<void>;
    setCLsChannelAnonymous(topicId: string, endpoint: string): Promise<void>;
    setCLsChannelStaticKey(topicId: string, endpoint: string, secretId: string, secretKey: string): Promise<void>;
    setCLsChannelSessionCredential(topicId: string, endpoint: string, callback: () => Promise<SessionQCloudCredentials | null>): Promise<void>;
    addSensitiveRule(ruleName: string, regex: string): Promise<void>;
    removeSensitiveRule(ruleName: string): Promise<void>;
    getLogRootDir(): Promise<string>;
}
declare const _default: Cos;
export default _default;
//# sourceMappingURL=index.d.ts.map