import { TimeOutManager } from "./TimeOutManager";
export {};
declare enum SDKSTATUSENUM {
    "STARTED" = "started",
    "STARTING" = "starting",
    "CONNECTED" = "connected",
    "READY" = "ready",
    "STOPPED" = "stopped",
    "DISCONNECTED" = "disconnected",
    "RECONNECTING" = "reconnecting",
    "FAILED" = "failed",
    "ERROR" = "error"
}
declare class StateManager {
    eventEmitter: any;
    logger: any;
    state: any;
    private timeOutManager;
    constructor(_eventEmitter: any, logger: any, timeOutManager: TimeOutManager);
    start(): Promise<unknown>;
    stop(publishEvent?: boolean): Promise<unknown>;
    transitTo(publishEvent: boolean, state: SDKSTATUSENUM, data?: any): Promise<unknown>;
    get STOPPED(): SDKSTATUSENUM;
    get CONNECTED(): SDKSTATUSENUM;
    get STARTED(): SDKSTATUSENUM;
    get STARTING(): SDKSTATUSENUM;
    get DISCONNECTED(): SDKSTATUSENUM;
    get RECONNECTING(): SDKSTATUSENUM;
    get READY(): SDKSTATUSENUM;
    get FAILED(): SDKSTATUSENUM;
    get ERROR(): SDKSTATUSENUM;
    isSTOPPED(): boolean;
    isCONNECTED(): boolean;
    isSTARTED(): boolean;
    isSTARTING(): boolean;
    isDISCONNECTED(): boolean;
    isRECONNECTING(): boolean;
    isREADY(): boolean;
    isFAILED(): boolean;
    isERROR(): boolean;
}
export { StateManager, SDKSTATUSENUM };
