@difizen/mana-app
Version:
48 lines • 2.31 kB
TypeScript
import type { URI } from '@difizen/mana-common';
import type { TreeNode, CompositeTreeNode } from '../tree/tree';
import type { ExpandableTreeNode } from '../tree/tree-expansion';
import { TreeImpl } from '../tree/tree-impl';
import type { SelectableTreeNode } from '../tree/tree-selection';
import type { FileSelection } from './file-selection';
import { FileService } from './file-service';
import type { URINode } from './file-tree-protocol';
import type { FileStat, FileType, Stat } from './files';
export declare class FileTree extends TreeImpl {
protected readonly fileService: FileService;
constructor(fileService: FileService);
resolveChildren(raw: CompositeTreeNode): Promise<TreeNode[]>;
protected resolveFileStat(node: FileStatNode): Promise<FileStat | undefined>;
protected toNodes(fileStat: FileStat, parent: CompositeTreeNode): Promise<TreeNode[]>;
protected toNode(fileStat: FileStat, parent: CompositeTreeNode): FileNode | DirNode;
protected toNodeId(uri: URI, _parent: CompositeTreeNode): string;
}
export interface FileStatNode extends SelectableTreeNode, URINode, FileSelection {
}
export declare namespace FileStatNode {
function is(node: object | undefined): node is FileStatNode;
function getUri(node: TreeNode | undefined): string | undefined;
}
export type FileStatNodeData = Omit<FileStatNode, 'uri' | 'fileStat'> & {
uri: string;
stat?: Stat | ({
type: FileType;
} & Partial<Stat>);
fileStat?: FileStat;
};
export declare namespace FileStatNodeData {
function is(node: object | undefined): node is FileStatNodeData;
}
export type FileNode = FileStatNode;
export declare namespace FileNode {
function is(node: Record<any, any> | undefined): node is FileNode;
}
export type DirNode = FileStatNode & ExpandableTreeNode;
export declare namespace DirNode {
function is(node: Record<any, any> | undefined): node is DirNode;
function compare(node: TreeNode, node2: TreeNode): number;
function uriCompare(node: TreeNode, node2: TreeNode): number;
function dirCompare(node: TreeNode, node2: TreeNode): number;
function createRoot(fileStat: FileStat, rootVisible: boolean): DirNode;
function getContainingDir(node: TreeNode | undefined): DirNode | undefined;
}
//# sourceMappingURL=file-tree.d.ts.map