UNPKG

stanza-extend

Version:

Modern XMPP in the browser, with a JSON API

50 lines (49 loc) 1.95 kB
/// <reference types="node" /> import { AsyncPriorityQueue } from 'async'; import { EventEmitter } from 'events'; import { Agent, AgentConfig, Transport } from './'; import StreamManagement from './helpers/StreamManagement'; import * as JXT from './jxt'; import * as SASL from './lib/sasl'; import { IQ, Message, Presence, StreamError } from './protocol'; interface StreamData { kind: string; stanza: any; replay?: boolean; } export default class Client extends EventEmitter { jid: string; config: AgentConfig; sm: StreamManagement; transport?: Transport; stanzas: JXT.Registry; sessionStarting?: boolean; sessionStarted?: boolean; sessionTerminating?: boolean; reconnectAttempts: number; transports: { [key: string]: new (client: Agent, sm: StreamManagement, registry: JXT.Registry) => Transport; }; sasl: SASL.Factory; incomingDataQueue: AsyncPriorityQueue<StreamData>; outgoingDataQueue: AsyncPriorityQueue<StreamData>; private reconnectTimer; constructor(opts?: AgentConfig); updateConfig(opts?: AgentConfig): void; get stream(): import("./protocol").Stream | undefined; emit(name: string, ...args: any[]): boolean; use(pluginInit: boolean | ((agent: Agent, registry: JXT.Registry, config: AgentConfig) => void)): void; nextId(): string; getCredentials(): Promise<SASL.Credentials>; connect(): Promise<void>; disconnect(): Promise<void>; send(kind: string, stanza: object, replay?: boolean): Promise<void>; sendMessage(data: Message): Promise<object>; //yjing modify sendPresence(data?: Presence): Promise<object>; //yjing modify sendIQ<T extends IQ = IQ, R extends IQ = T>(data: T): Promise<R>; sendIQResult(original: IQ, reply: Partial<IQ>): void; sendIQError(original: IQ, error: Partial<IQ>): void; sendStreamError(error: StreamError): void; private _getConfiguredCredentials; } export {};