type Callback = () => void; type ArrayMaybe = T[] | T; type PromiseMaybe = Promise | T; type DirentLike = { isFile: () => boolean; isDirectory: () => boolean; isBlockDevice: () => boolean; isCharacterDevice: () => boolean; isSymbolicLink: () => boolean; isFIFO: () => boolean; isSocket: () => boolean; }; type Dirent = DirentLike & { name: string; path: string; }; type Options = { depth?: number; limit?: number; followSymlinks?: boolean; ignore?: ArrayMaybe<((targetPath: string, targetContext: DirentLike) => boolean) | RegExp>; signal?: { aborted: boolean; }; onDirents?: (dirents: Dirent[]) => PromiseMaybe; }; type Result = { directories: string[]; files: string[]; symlinks: string[]; }; export type { Callback, PromiseMaybe, DirentLike, Dirent, Options, Result };