import Promise = require('promise'); export interface FileSystemEntry { isFile(): boolean; isDirectory(): boolean; isBlockDevice(): boolean; isCharacterDevice(): boolean; isSymbolicLink(): boolean; isFIFO(): boolean; isSocket(): boolean; dev: number; ino: number; mode: number; nlink: number; uid: number; gid: number; rdev: number; size: number; blksize: number; blocks: number; atime: Date; mtime: Date; ctime: Date; birthtime: Date; /** * The filename, e.g. "index.js" */ name: string; /** * The asbolute path to the file. Uses "/" on unix and "\\" on most windows. e.g. "C:\\\\Users\\Forbes Lidnesay\File.js" */ fullPath: string; /** * The path relative to the starting directory. e.g. "path/to/file.js" * * N.B. "\\" is normalized to "/" even on windows. */ path: string; } export interface Options { filterPath?: (path: string) => boolean; filter?: (entry: FileSystemEntry) => boolean; highWaterMark?: number; ignoreErrors?: boolean; } export declare function lsrSync(dir: string, options?: Options): Array; export declare type Callback = (err: Error | void | null, result: Array) => void; export default lsrAsync; export declare function lsrAsync(dir: string, options: Options, callback: Callback): void; export declare function lsrAsync(dir: string, callback: Callback): void; export declare function lsrAsync(dir: string, options?: Options): Promise>; export declare function lsrStream(dir: string, options: Options): any;