import type { PlainObject } from '../../types'; import type { Element } from '@xmpp/xml'; import type { Options } from '@xmpp/connection'; import type { Reconnect } from '@xmpp/reconnect'; import type { Middleware } from '@xmpp/middleware'; import type { StreamFeatures } from '@xmpp/stream-features'; import type { IQCaller } from '@xmpp/iq/caller.js'; import type { IQCallee } from '@xmpp/iq/callee.js'; import type { SASL2 } from '@xmpp/sasl2'; import type { SASL } from '@xmpp/sasl'; import type { Resource } from '@xmpp/resource-binding'; import type { Bind2 } from '@xmpp/client-core/src/bind2/bind2.js'; import type { Token, FAST } from '@xmpp/client-core/src/fast/fast.js'; import { Client } from '@xmpp/client-core'; import _websocket from '@xmpp/websocket'; import _resourceBinding from '@xmpp/resource-binding'; import SASLFactory from 'saslmechanisms'; export type XMPPResource = Resource | string | (() => Promise) | undefined; export type XMPPCredentialsProp = string | undefined; export type XMPPCredentialsAuth = (credentials: Partial, mechanism: string, userAgent?: XMPPUserAgent) => Promise; export type XMPPCredentials = Partial | ((callback: XMPPCredentialsAuth, mechanism: string) => Promise) | undefined; export type XMPPUserAgent = Element | undefined; export interface XMPPCredentialsObj { username: XMPPCredentialsProp; password: XMPPCredentialsProp; token: Token; } export interface XMPPOptions extends Options, Partial { resource?: XMPPResource; credentials?: XMPPCredentials; userAgent?: XMPPUserAgent; } export interface XMPPClient extends Client { entity: Client; reconnect: Reconnect; websocket: ReturnType; middleware: Middleware; streamFeatures: StreamFeatures; iqCaller: IQCaller; iqCallee: IQCallee; saslFactory: SASLFactory; sasl2: SASL2; sasl: SASL; resourceBinding: ReturnType; mechanisms: PlainObject[]; bind2: Bind2; fast: FAST; options: XMPPOptions; sendOnline: (element: Element, ...args: unknown[]) => Promise; tcpEnabled?: boolean; tlsEnabled?: boolean; } export declare function xmppClient(options: XMPPOptions): XMPPClient; //# sourceMappingURL=xmpp.d.ts.map