import { Observable } from 'rxjs'; import { ExplorerState } from './explorer.state'; import { AssetsBackend } from '@youwol/http-clients'; import { BrowserNode } from './nodes'; import { AnyVirtualDOM } from '@youwol/rx-vdom'; export type Section = 'Modify' | 'Move' | 'New' | 'IO' | 'Disposition' | 'Info' | 'CustomActions' | 'Open'; export interface Action { sourceEventNode: BrowserNode; icon: AnyVirtualDOM; name: string; enabled: () => boolean | Promise; exe: () => void | Promise; applicable: () => boolean | Promise; section: Section; } export interface GroupPermissions { write: boolean; } export interface OverallPermissions { group: GroupPermissions; item?: AssetsBackend.PermissionsResp; } export type ActionConstructor = (state: ExplorerState, node: BrowserNode, permissions: OverallPermissions) => Action; export declare const GENERIC_ACTIONS: { [k: string]: ActionConstructor; }; export declare function getActions$(state: ExplorerState, node: BrowserNode): Observable>;