import Params from './params';
type Dict = Record<string, any>;
type ConsoleType = 'log' | 'info' | 'warn' | 'error';
type Callback = (...args: unknown[]) => void;
type Init = {
    url: string;
    enviroment: {
        request(url: string, data: Dict): Promise<unknown>;
        getDeviceInfo(): Promise<Dict>;
        watchJsError(callback: Callback): Callback;
        watchRouteChange(callback: Callback): Callback;
        getDeviceFingerprintId(): Promise<string>;
    };
    maxRequest?: number;
    debuger?: boolean;
    taskCount?: number;
    final?: string[];
    isAddJsError?: boolean;
    isAddPageStay?: boolean;
};
type Config = {
    project?: string;
    appId: string;
    appSecret: string;
    version?: string;
};
declare class Tracker {
    private _reBlockId;
    private _version;
    private _requestUrl;
    private _task;
    params: Params;
    private _final;
    private _enviroment;
    private _maxRequest;
    private _debuger;
    constructor(opts: Init);
    create: (opts: Config) => void;
    $setDeviceInfo(): Promise<void>;
    $watchJsError(isAddJsError: boolean): void;
    $watchPageStay(isAddPageStay: boolean): void;
    register(params: Dict): void;
    clearRegister(keys: string[]): void;
    requestError(params: Dict): void;
    event(event: string, ...args: (string | Dict)[]): void;
    setProfile(users: Dict): void;
    addTask(params: Params): void;
    $send(opts: Dict, i?: number): void;
    mergeFinal(param: string[]): void;
    $createParams(obj: Dict): Params;
    get $time(): number;
    $log(name: string, content: unknown, type?: ConsoleType): (() => void) | undefined;
    getBlockId(): Promise<string>;
}
export default Tracker;
