import { Stats } from "fs"; declare function directoryTree< TCustomFile extends Record = Record, TCustomDir extends Record = Record, TCustomResult extends Record = TCustomFile & TCustomDir >( path: string, options?: directoryTree.DirectoryTreeOptions, onEachFile?: directoryTree.DirectoryTreeCallback, onEachDirectory?: directoryTree.DirectoryTreeCallback ): directoryTree.DirectoryTree; export as namespace directoryTree; declare namespace directoryTree { export interface DirectoryTree = Record> { path: string; name: string; size?: number; type: "directory" | "file"; children?: DirectoryTree[]; extension?: string; isSymbolicLink?: boolean; custom?: C; } export interface DirectoryTreeOptions { normalizePath?: boolean; exclude?: RegExp | RegExp[]; attributes?: (keyof Stats | "type" | "extension")[]; extensions?: RegExp; followSymlinks?: boolean; depth?: number; } export type DirectoryTreeCallback = Record> = ( item: DirectoryTree, path: string, stats: Stats ) => void; } export = directoryTree;