export declare class Item { private readonly id; private readonly name; private readonly type; private readonly data; private parent; private readonly eventEmitter; constructor(id: string, name: string, type: string, data?: {}); getId(): string; getName(): string; getType(): string; setParent(parent: Folder): Item; getParent(): Folder; getDepth(): number; getData(): any; getParentById(id: string): Item; on(name: any, fn: any, invoke?: any, scope?: any): void; trigger(name: any, ...args: any[]): void; } export declare class File extends Item { constructor(id: string, name: string, type?: string, data?: {}); moveTo(folder: Folder): File; } export declare class Folder extends Item { private pool; private folders; private files; private lazy; private limit; private readonly status; constructor(id: string, name: string, data?: {}); setPool(pool: Record): Folder; setFolders(folders: Folder[]): Folder; setFiles(files: File[]): Folder; setLazy(lazy?: boolean): Folder; isLazy(): boolean; getFolderById(id: string): Folder; getFileById(id: string): File; getFolders(): Folder[]; getFiles(): File[]; createFolder(name: string): Folder; createFile(name: string, type?: any): File; addFolder(idOrFolder: string | Folder, name?: string, data?: {}): Folder; addFile(idOrFile: string | File, name?: string, type?: string, data?: {}): File; removeFile(file: File): File; removeFolder(folder: Folder): Folder; hasFiles(): boolean; hasFolders(): boolean; isEmpty(): boolean; hasFileLeaf(): boolean; isOpen(): boolean; toggleOpen(open?: boolean): Folder; toggleEdit(edit?: boolean): Folder; toggleHasFileLeaf(hasFileLeaf: boolean): Folder; moveTo(folder: Folder): Folder; getLength(res?: number): number; setLimit(limit: number): void; getLimit(): number; destroy(): void; $clone(): Folder; }