///
import Tree from "./Tree";
import Client from "./Client";
import { EventEmitter } from "events";
import Header from "../protocol/smb2/Header";
export interface AuthenticateOptions {
domain: string;
username: string;
password: string;
/**
* Force a specific NTLM version instead of auto-negotiation
* - 'v1': Force NTLMv1 (less secure but more compatible)
* - 'v2': Force NTLMv2 (more secure, less compatible with some servers)
* - undefined: Auto-detect based on server response (default)
*/
forceNtlmVersion?: 'v1' | 'v2';
}
interface Session {
on(event: "authenticate" | "logoff", callback: (session: Session) => void): this;
once(event: "authenticate" | "logoff", callback: (session: Session) => void): this;
}
declare class Session extends EventEmitter {
client: Client;
_id: string;
authenticated: boolean;
connectedTrees: Tree[];
constructor(client: Client);
connectTree(path: string): Promise;
createRequest(header?: Header, body?: any): import("../protocol/smb2/Request").default;
request(header?: Header, body?: any): Promise;
authenticate(options: AuthenticateOptions): Promise;
private registerTree;
logoff(): Promise;
}
export default Session;