import { Agent } from '../'; import { IQ, StreamManagement, StreamManagementAck, StreamManagementResume } from '../protocol'; export interface KeepAliveOptions { interval?: number; timeout?: number; } declare module '../' { interface Agent { _keepAliveInterval?: any; _keepAliveOptions?: KeepAliveOptions; markActive(): void; markInactive(): void; enableKeepAlive(opts?: KeepAliveOptions): void; disableKeepAlive(): void; ping(jid?: string): Promise; _stopKeepAliveInterval(): void; } interface AgentEvents { sm: StreamManagement; 'stream:management:ack': StreamManagementAck; 'stream:management:resumed': StreamManagementResume; 'iq:get:ping': IQ & { ping: boolean; }; } interface AgentConfig { /** * Use Stream Management * * Controls if XEP-0198: Stream Management * is enabled for the session. * * Disabling stream management is not recommended. * * @default true */ useStreamManagement?: boolean; } } export default function (client: Agent): void;