export interface FilePart { parent?: Dir; name: string; } export declare class Dir { name: string; parent?: Dir | undefined; private files; private dirs; constructor(name: string, parent?: Dir | undefined, files?: FilePart[], dirs?: Dir[]); add(...files: FilePart[]): this; child(dir: Dir): this; static absoluteLocationFor(part: FilePart): string[]; /** * * @param currentLocation directory location of current file * @param imported location of file plus the name of the file */ static importLocation(currentLocation: string[], imported: string[]): string; get(): { name: string; files: FilePart[]; dirs: Dir[]; }; write(location?: string, transform?: (file: FilePart) => string): void; private getNextChild; getChildAt(location?: string): Dir; static create(name: string): Dir; }