import { ApiBase, ApiBaseInitializerParams } from './base';
declare type ReportPointOptionalParams = {
    result?: boolean;
    errCode?: string;
    httpCode?: number;
    api?: string;
};
declare type ReportPointMetricParams = {
    count?: number;
    elapse?: number;
};
declare type ReportPointParams = {
    m: string;
    ls: {
        ctype: string;
        platform: 'web' | 'electron';
        version: string;
        appId: string;
        event?: string;
        category?: string;
        result?: string;
        errCode?: string;
        httpCode?: number;
        api?: string;
    };
    vs: ReportPointMetricParams;
};
declare type ReportParams = {
    sign: string;
    src: string;
    ts: number;
    pts: [ReportPointParams];
};
export declare class ReportService extends ApiBase {
    protected sid: string;
    protected rid: string;
    protected version: string;
    protected platform: 'web' | 'electron';
    protected tickerMap: Map<string, number>;
    protected connectionState: string;
    protected timer?: any;
    constructor(params: ApiBaseInitializerParams);
    initReportParams(params: {
        sid: string;
        rid: string;
        appId: string;
        uid: string;
    }): void;
    setReportSdkDomain(sdkDomain: string): void;
    guardParams(): boolean;
    updateConnectionState(state: string): void;
    setAppId(appId: string): void;
    buildBaseParams(ctype: string, src: string, m: string, metric: ReportPointMetricParams, optional: ReportPointOptionalParams, event?: string, category?: string): ReportParams;
    buildEventParams(event: string, category: string, metric: ReportPointMetricParams, optional: ReportPointOptionalParams): ReportParams;
    buildHBParams(): ReportParams;
    get apiPath(): string;
    request(params: {
        method: string;
        data: ReportParams;
        path: string;
    }): Promise<any>;
    reportHB(): Promise<any>;
    report(event: string, category: string, metric: ReportPointMetricParams, optional?: ReportPointOptionalParams): Promise<any>;
    tickerKey(event: string, category: string, api?: string): string;
    startTick(event: string, category: string, api?: string): void;
    startHB(): void;
    stopHB(): void;
    getElapse(event: string, category: string, api?: string): number;
    reportEC(event: string, category: string, optional?: ReportPointOptionalParams): Promise<any>;
    reportElapse(event: string, category: string, optional?: ReportPointOptionalParams): Promise<any>;
    reportHttp(event: string, category: string, api: string, httpCode: number, result: boolean, errCode: string): Promise<any>;
}
export declare const reportService: ReportService;
export {};
