UNPKG

@miguel-cagide/smb2

Version:

A SMB2 implementation in TypeScript

62 lines (61 loc) 2.01 kB
/// <reference types="node" /> import Tree from "./Tree"; import { EventEmitter } from "events"; import { CreateOptions } from "../protocol/smb2/packets/Create"; import CreateDispositionType from "../protocol/smb2/CreateDispositionType"; import FilePipePrinterAccess from "../protocol/smb2/FilePipePrinterAccess"; import { Readable } from "stream"; import { FileWriteStream } from "./stream/FileWriteStream"; export declare type FileStats = { structureSize: number; oplockLevel: number; flags: number; createAction: number; creationTime: bigint; lastAccessTime: bigint; lastWriteTime: bigint; changeTime: bigint; allocationSize: bigint; endOfFile: bigint; fileAttributes: number; reserved2: number; fileId: string; createContextsOffset: number; createContextsLength: number; }; interface OpenOptions { desiredAccess?: FilePipePrinterAccess; createDisposition?: CreateDispositionType; createOptions?: CreateOptions; } interface File { on(event: "open" | "close", callback: (file: File) => void): this; once(event: "open" | "close", callback: (file: File) => void): this; } declare class File extends EventEmitter { private tree; _id: Buffer; isOpen: boolean; fileSize: bigint; private _stats; constructor(tree: Tree); open(path: string, options?: OpenOptions): Promise<void>; get stats(): Readonly<FileStats>; create(path: string): Promise<void>; remove(): Promise<void>; rename(newPath: string): Promise<void>; setSize(size: bigint): Promise<void>; setInfo(fileInfoClass: number, buffer: Buffer): Promise<void>; private writeChunk; write(content: Buffer | string): Promise<void>; createWriteStream(): FileWriteStream; private readChunk; read(): Promise<Buffer>; createReadStream(options?: { start?: number; end?: number; }): Readable; exists(path: string): Promise<boolean>; close(): Promise<void>; } export default File;