import { Method } from '../../common/Constants';
import Core from '../../core/Core';
import BalancerAnalyticsOptions from './BalancerAnalyticsOptions';
import BalancerVideoView from './BalancerVideoView';
import BalancerVideoCallback from './BalancerVideoCallback';
export default class BalancerAnalytics implements BalancerVideoCallback {
    readonly options: BalancerAnalyticsOptions;
    waitForMetadataTimeout: number;
    currentView?: BalancerVideoView;
    private readonly core;
    private readonly accountCode;
    private readonly httpMethod;
    private readonly flags;
    private readonly chronos;
    private pendingEvents;
    private delayedStartInterval?;
    private flushInterval?;
    constructor(core: Core, accountCode: string, httpMethod?: Method);
    init(): void;
    start(): void;
    join(): void;
    bufferBegin(): void;
    bufferEnd(): void;
    error(code: string, message: string): void;
    stop(): void;
    destroy(): void;
    onNewVideoByManifestDetected(manifestUrl: string): void;
    private asyncStart;
    private isRequiredMetadataReady;
    private isDecisionFinished;
    private initDelayedStart;
    private stopDelayedStart;
    private startNewView;
    private endCurrentView;
    private sendEvent;
    private pushEvent;
    private startFlushJob;
    private stopFlushJob;
    private buildBaseParams;
    private buildStartParams;
    private extractResourceId;
}
