import { NetworkState, NetworkType } from "../utils/ajax";
import { Subscribe } from "../utils/subscribe";
import { State } from "../types/state";
import { Works } from "../work";
declare class AnalysisWebSocketConnect extends Subscribe<{
    error(event: Error): void;
    retry(count: number): void;
    open(): void;
    close(): void;
}> {
    private static maxRetryCount;
    private url;
    private socket?;
    private opening;
    private retryCount;
    private messageCache;
    private timer?;
    constructor(url: string);
    connect(): void;
    private tryReconnect;
    private clean;
    close(): void;
    private onClose;
    private onOpen;
    private onError;
    send(message: string): void;
}
declare class Analysis extends AnalysisWebSocketConnect {
    constructor(url: string);
    deviceInfo(): {
        userAgent: string;
        language: string;
        referer: string;
        timeStamp: number;
    };
    state(works: Works | undefined, state: State): void;
    work(works: Works): void;
    network(works: Works | undefined, source: string, type: NetworkType, state: NetworkState, detail: any): void;
}
export { Analysis };
