///
///
///
import { Socket } from "net";
import { EventEmitter } from "events";
import Request from "../protocol/smb2/Request";
import Response from "../protocol/smb2/Response";
import Header from "../protocol/smb2/Header";
import Session, { AuthenticateOptions } from "./Session";
export interface Options {
port?: number;
connectTimeout?: number;
requestTimeout?: number;
}
interface Client {
on(event: "error", callback: (error: Error) => void): this;
on(event: "changeNotify", callback: (response: Response) => void): this;
once(event: "error", callback: (error: Error) => void): this;
once(event: "changeNotify", callback: (response: Response) => void): this;
}
declare class Client extends EventEmitter {
host: string;
options: Options;
_id: string;
socket: Socket;
nextMessageId: bigint;
responseRestChunk: Buffer;
responseMap: Map;
responseCallbackMap: Map void>;
connected: boolean;
port: number;
connectTimeout: number;
connectTimeoutId: NodeJS.Timeout;
requestTimeout: number;
requestTimeoutIdMap: Map;
sessions: Session[];
constructor(host: string, options?: Options);
connect(): Promise;
createRequest(header?: Header, body?: any): Request;
request(header?: Header, body?: any): Promise;
send(request: Request): Promise;
onData: (buffer: Buffer) => void;
onResponse(response: Response): void;
onError: (err: Error) => void;
onClose: (hadError: boolean) => void;
echo(): Promise;
authenticate(options: AuthenticateOptions): Promise;
private destroySocket;
private registerSession;
close(): Promise;
}
export default Client;