/// import type { Agent } from "https"; import type { Logger } from "pino"; import type { URL } from "url"; import { MediaConnInfo } from "./Message"; import { AxiosRequestConfig } from 'axios'; import { proto } from '../Proto'; export declare type WAVersion = [number, number, number]; export declare type WABrowserDescription = [string, string, string]; export declare type CommonSocketConfig = { /** provide an auth state object to maintain the auth state */ auth?: T; /** the WS url to connect to WA */ waWebSocketUrl: string | URL; /** Fails the connection if the socket times out in this interval */ connectTimeoutMs: number; /** Default timeout for queries, undefined for no timeout */ defaultQueryTimeoutMs: number | undefined; /** ping-pong interval for WS connection */ keepAliveIntervalMs: number; /** proxy agent */ agent?: Agent; /** pino logger */ logger: Logger; /** version to connect with */ version: WAVersion; /** override browser config */ browser: WABrowserDescription; /** agent used for fetch requests -- uploading/downloading media */ fetchAgent?: Agent; /** should the QR be printed in the terminal */ printQRInTerminal: boolean; /** should events be emitted for actions done by this socket connection */ emitOwnEvents: boolean; /** provide a cache to store media, so does not have to be re-uploaded */ mediaCache?: CacheStore; shouldIgnoreJid: (jid: string) => boolean | undefined; customUploadHosts: MediaConnInfo['hosts']; treatCiphertextMessagesAsReal: boolean; retryRequestDelayMs: number; msgRetryCounterCache?: CacheStore; userDevicesCache?: CacheStore; options: AxiosRequestConfig<{}>; patchMessageBeforeSending: (msg: proto.IMessage, recipientJids: string[]) => Promise | proto.IMessage; }; export declare type CacheStore = { get(key: string): T | undefined; set(key: string, value: T): void; del(key: string): void; flushAll(): void; };