/// <reference types="angular" />
import { TokenUser } from "@openiap/openflow-api";
interface IHashTable<T> {
    [key: string]: T;
}
declare type onSignedinCallback = (user: TokenUser) => void;
export declare class WebSocketClientService {
    $rootScope: ng.IRootScopeService;
    $location: any;
    $window: any;
    static $inject: string[];
    constructor($rootScope: ng.IRootScopeService, $location: any, $window: any);
    load(): void;
    loadToken(): void;
    impersonate(userid: string): Promise<void>;
    setCookie(cname: any, cvalue: any, exdays: any): void;
    getCookie(cname: any): string;
    deleteCookie(cname: any): void;
    private logger;
    user: TokenUser;
    jwt: string;
    version: string;
    messageQueue: IHashTable<QueuedMessage>;
    usingCordova: boolean;
    connected: boolean;
    domain: string;
    allow_user_registration: boolean;
    allow_personal_nodered: boolean;
    auto_create_personal_nodered_group: boolean;
    namespace: string;
    nodered_domain_schema: string;
    websocket_package_size: number;
    stripe_api_key: string;
    validate_user_form: string;
    getJSON(url: string, callback: any): void;
    onSignedin(callback: onSignedinCallback): void;
    onConnected(callback: any): void;
}
export declare type QueuedMessageCallback = (msg: any) => any;
export declare type QueuedMessageStatusCallback = (msg: any, index: number, count: number) => any;
export declare class QueuedMessage {
    constructor(message: any, cb: QueuedMessageCallback, status: QueuedMessageStatusCallback);
    cb: QueuedMessageCallback;
    status: QueuedMessageStatusCallback;
    id: string;
    message: any;
}
export {};
