import { JupyterFrontEndPlugin } from '@jupyterlab/application'; import { Token } from '@lumino/coreutils'; import { ISignal } from '@lumino/signaling'; import { type IEditor } from './editors'; /** * A read-only, observable view of the launcher's terminal editors: xtralab's * built-ins (Neovim, Vim) merged with the user's `editors` setting, sorted by * rank, with disabled entries removed. */ export interface IEditorRegistry { /** * The full merged editor list (disabled entries already removed). The * terminals panel uses it to badge a row for any configured editor that is * running, and to tell the server which editor commands to detect. */ readonly editors: IEditor[]; /** * The single editor tile the launcher shows: the first editor, by rank, whose * command is on `$PATH` (Neovim before Vim by default), or `null` when none * qualifies. */ readonly current: IEditor | null; /** * Emitted whenever {@link editors} or {@link current} changes (the user * edited the `editors` setting). Consumers that read on demand can ignore it. */ readonly changed: ISignal; } /** * DI token for {@link IEditorRegistry}. Provided by `xtralab:editor-registry` * and consumed — optionally — by `xtralab:launcher` (for its tile) and * `xtralab:terminals` (to badge running editors with their logo). */ export declare const IEditorRegistry: Token; /** * Provides {@link IEditorRegistry}: merges xtralab's built-in editors with the * user's `editors` setting, probes the server's `$PATH` to resolve the launcher * tile, and re-runs both on a settings change. * * `activate` awaits the first probe before returning, so a consumer reading * {@link IEditorRegistry.current} on activation sees a resolved tile. */ export declare const editorRegistryPlugin: JupyterFrontEndPlugin;