import { ImmutableTree } from '@youwol/rx-tree-views'; import { ExplorerBackend } from '@youwol/http-clients'; import { RequestEvent } from '@youwol/http-primitives'; import { BehaviorSubject, Observable, ReplaySubject, Subscription } from 'rxjs'; import { AnyFolderNode, BrowserNode, DownloadNode, DriveNode, FolderNode, GroupNode, HomeNode, ItemNode, RegularFolderNode, TrashNode } from './nodes'; export declare class TreeGroup extends ImmutableTree.State { readonly explorerState: ExplorerState; readonly homeFolderId: string; readonly trashFolderId: string; readonly groupId: string; readonly drivesId: string[]; readonly defaultDriveId: string; readonly downloadFolderId?: string; constructor(rootNode: GroupNode, params: { explorerState: ExplorerState; groupId: string; homeFolderId: string; trashFolderId: string; defaultDriveId: string; drivesId: string[]; downloadFolderId?: string; recentId?: string; }); getHomeNode(): HomeNode; getDownloadNode(): DownloadNode; getTrashNode(): TrashNode; getDefaultDriveNode(): DriveNode; } export type OpenFolder = { tree: TreeGroup; folder: AnyFolderNode | DriveNode; }; export declare class ExplorerState { readonly selectedItem$: BehaviorSubject; readonly openFolder$: ReplaySubject; readonly userInfo$: Observable; readonly defaultUserDrive$: Observable; readonly userDrives$: Observable; groupsTree: { [key: string]: TreeGroup; }; itemCut: { cutType: 'borrow' | 'move'; node: ItemNode | AnyFolderNode; }; readonly subscriptions: Subscription[]; constructor(); openFolder(folder: AnyFolderNode | DriveNode): void; navigateTo$(folderId: string): Observable<{ nodes: BrowserNode[]; treeGroupState: TreeGroup; }>; selectItem(item: BrowserNode): void; selectGroup$(groupId: string): Observable; newFolder(parentNode: DriveNode | AnyFolderNode): void; newAsset<_T>({ parentNode, response$, progress$, pendingName, }: { parentNode: AnyFolderNode; response$: Observable; progress$?: Observable; pendingName: string; }): void; rename(node: FolderNode<'regular'> | ItemNode, newName: string, save?: boolean): void; deleteItemOrFolder(node: RegularFolderNode | ItemNode): void; deleteDrive(node: DriveNode): void; purgeDrive(trashNode: TrashNode): void; cutItem(node: ItemNode | FolderNode<'regular'>): void; borrowItem(node: ItemNode): void; pasteItem(destination: AnyFolderNode | DriveNode): void; refresh(folder: AnyFolderNode, openFolder?: boolean): void; uploadAsset(node: ItemNode): void; launchApplication({ cdnPackage, parameters, }: { cdnPackage: string; parameters: { [_k: string]: string; }; }): any; }