export default class Client<T> {
    private socket;
    private state;
    private stateUpdateListeners;
    constructor(endpoint: string, identifier: string, accessToken?: string);
    addStateUpdateListener: (identifier: string, handler: (updates: Partial<T>, previousUpdates: Partial<T>) => void, properties?: Array<keyof T>) => void;
    removeStateUpdateListener: (identifier: string) => void;
    private onMessage;
    connectToState: (stateIdentifier: string) => Promise<unknown>;
    updateState: (updates: Partial<T>) => void;
    onConnection: () => Promise<unknown>;
    onError: () => Promise<unknown>;
    getState: () => T;
    private onStateUpdated;
    private sendMesage;
    private _onStateConnectionEstablished;
    private _onStateConnectionError;
}
