import { InterfaceEventEmitter } from './util';
import { Config, LogType, Environment, SendOption, SendSuccess, SendFail, SpeedLog, BridgeLog, ReportTimeLog, SendType, EventLog } from './interface';
import Plugin from './plugin';
import { Pipe } from './pipes';
export default class Core {
    static version: string;
    static instances: Core[];
    constructor(config: Config);
    get __version__(): string;
    isGetSample: boolean;
    isHidden: boolean;
    static logType: typeof LogType;
    get LogType(): typeof LogType;
    static environment: typeof Environment;
    config: Config;
    isWhiteList: boolean;
    lifeCycle: InterfaceEventEmitter;
    bean: {
        [key: string]: string | number | boolean;
    };
    sendNow: boolean;
    init(config: Config): void;
    setConfig(config: Partial<Config>): Config;
    static installedPlugins: Plugin[];
    static use(plugin: Plugin): void;
    static unuse(plugin: Plugin): void;
    info(...msg: any): void;
    infoAll(...msg: any): void;
    report(...msg: any): void;
    error(...msg: any): void;
    normalLogPipeline: import("./pipes").Pipeline<any, any>;
    speedLogPipeline(_log?: SpeedLog | SpeedLog[] | BridgeLog | BridgeLog[]): void;
    reportPv(id: number): void;
    reportEvent(event: string | EventLog): void;
    eventPipeline: import("./pipes").Pipeline<any, any>;
    private timeMap;
    private failRequestCount;
    reportTime(key: string | ReportTimeLog, duration?: number): void;
    reportT(obj: ReportTimeLog): void;
    time(key: string): void;
    timeEnd(key: string): void;
    private submitCustomTime;
    customTimePipeline: import("./pipes").Pipeline<any, any>;
    extendBean(key: string, value: any): void;
    sendPipeline(pipes: Pipe[], type: SendType): import("./pipes").Pipeline<any, any>;
    send(options: SendOption, success?: SendSuccess, fail?: SendFail): any;
    ready(_options: SendOption, _success?: SendSuccess, _fail?: SendFail): void;
    request(_options: SendOption, _success?: SendSuccess, _fail?: SendFail): void;
    sendSDKError(err: any): void;
    destroy(force?: boolean): void;
}
