export type ITreeViewOptionsControlBy = 'checkbox' | 'button' export interface ITreeViewItem { id: string value: string isDir: boolean path: string isSelected?: boolean } export interface ITreeViewOptions { items: ITreeViewItem[] | null controlBy?: ITreeViewOptionsControlBy autoSelectChildren?: boolean isIndeterminate?: boolean } export interface ITreeView { options?: ITreeViewOptions update(): void getSelectedItems(): ITreeViewItem[] changeItemProp(id: string, prop: string, val: any): void destroy(): void }