///
import WebSocket from "ws";
import { SocketConfig, SuperChatsEventEmitter, SuperChatsEventMap, AuthenticationCreds } from "../Models";
import { BinaryNode } from '../Internal';
export declare const makeSocket: ({ waWebSocketUrl, connectTimeoutMs, logger, agent, keepAliveIntervalMs, version, browser, auth: authState, printQRInTerminal, defaultQueryTimeoutMs, transactionOpts }: SocketConfig) => {
/** Waits for the connection to WA to reach a state */
waitForConnectionUpdate: (check: (u: Partial) => boolean, timeoutMs?: number) => Promise;
addInfoObjects: (name: any, extend: any) => boolean;
getUser: (name: any) => any;
checkAddUser: (name: any) => boolean;
checkUser: (name: any) => boolean;
sessionsDir: (sessionId?: string) => string;
checkSession: (name: any) => boolean;
getSessionKey: (name: any) => string | false;
searchObjects: (name: any) => any;
getAll: () => any;
checkClient: (name: any) => boolean;
deleteToken: (name: any) => boolean;
deleteSession: (name: any) => boolean;
removeInfoObjects: (name: any, key: any) => boolean;
type: "md";
ws: WebSocket;
ev: SuperChatsEventEmitter;
authState: {
creds: AuthenticationCreds;
keys: import("../Models").SignalKeyStoreWithTransaction;
};
user: import("../Models").Contact;
generateMessageTag: () => string;
query: (node: BinaryNode, timeoutMs?: number) => Promise;
waitForMessage: (msgId: string, timeoutMs?: number) => Promise;
waitForSocketOpen: () => Promise;
sendRawMessage: (data: Buffer | Uint8Array) => Promise;
sendNode: (frame: BinaryNode) => Promise;
uploadPreKeys: (count?: number) => Promise;
logout: (msg?: string) => Promise;
emitEventsFromMap: (map: Partial>) => void;
close: () => Promise;
end: (error: Error | undefined) => void;
onUnexpectedError: (error: Error, msg: string) => void;
logs_e: (message: string) => void;
logs_i: (message: string) => void;
};
export declare type Socket = ReturnType;