///
///
import Tree from "./Tree";
import { EventEmitter } from "events";
import Response from "../protocol/smb2/Response";
import DirectoryAccess from "../protocol/smb2/DirectoryAccess";
import { CreateOptions } from "../protocol/smb2/packets/Create";
import DirectoryEntry from "../protocol/models/DirectoryEntry";
import CreateDispositionType from "../protocol/smb2/CreateDispositionType";
interface OpenOptions {
desiredAccess?: DirectoryAccess;
createDisposition?: CreateDispositionType;
createOptions?: CreateOptions;
}
interface Directory {
on(event: "open" | "close", callback: (directory: Directory) => void): this;
on(event: "change", callback: (response: Response) => void): this;
once(event: "open" | "close", callback: (directory: Directory) => void): this;
once(event: "change", callback: (response: Response) => void): this;
}
declare class Directory extends EventEmitter {
private tree;
_id: string;
isOpen: boolean;
watching: boolean;
private watchingMessageIds;
private watchRecursive;
constructor(tree: Tree);
open(path: string, options?: OpenOptions): Promise;
create(path: string): Promise;
watch(recursive?: boolean): Promise;
unwatch(): Promise;
private onChangeNotify;
private requestWatch;
flush(): Promise;
read(): Promise;
exists(path: string): Promise;
remove(): Promise;
rename(newPath: string): Promise;
setInfo(fileInfoClass: number, buffer: Buffer): Promise;
close(): Promise;
}
export default Directory;