/*!
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License.
*/
///
import { EventEmitter } from 'events';
import semver from 'semver';
import { Guid } from '../../..';
import { Connection, ExportedPromise, Message, Payloads, Protocols, Session } from '../../../internal';
/**
* @hidden
*/
export declare type QueuedMessage = {
message: Message;
promise?: ExportedPromise;
timeoutSeconds?: number;
};
/**
* @hidden
* Class representing a connection to an engine client
*/
export declare class Client extends EventEmitter {
private _conn;
private _version;
private static orderSequence;
private _id;
private _session;
private _protocol;
private _order;
private _queuedMessages;
private _userExclusiveMessages;
private _authoritative;
private _leave;
get id(): Guid;
get version(): semver.SemVer;
get order(): number;
get protocol(): Protocols.Protocol;
get session(): Session;
get conn(): Connection;
get authoritative(): boolean;
get queuedMessages(): QueuedMessage[];
get userExclusiveMessages(): QueuedMessage[];
userId: Guid;
/**
* Creates a new Client instance
*/
constructor(_conn: Connection, _version: semver.SemVer);
setAuthoritative(value: boolean): void;
/**
* Syncs state with the client
*/
join(session: Session): Promise;
leave(): void;
isJoined(): boolean;
send(message: Message, promise?: ExportedPromise, serializedMessage?: Buffer): void;
sendPayload(payload: Partial, promise?: ExportedPromise): void;
queueMessage(message: Message, promise?: ExportedPromise, timeoutSeconds?: number): void;
filterQueuedMessages(callbackfn: (value: QueuedMessage) => any): QueuedMessage[];
}
//# sourceMappingURL=client.d.ts.map