import type { Loader } from 'noodl'; import type { Draft } from 'immer'; import type { Cli } from './cli.js'; import { initialState as initialAppState } from './App.js'; import useConfiguration from './hooks/useConfiguration.js'; export declare namespace App { interface Context extends State { aggregator: Loader; cli: Cli; configuration: ReturnType; exit: (error?: Error | undefined) => void; highlight(panelKey: App.PanelKey | ''): void; log(text: string): void; logError(text: string | Error): void; toggleSpinner(type?: false | string): void; set(fn: (draft: Draft) => void): void; setPanel(panelKey: App.PanelKey | '', props?: Record): void; } type PanelKey = string; type State = typeof initialAppState; } export declare type PanelType = 'main' | 'generate' | 'retrieve' | 'server'; export interface PanelObject { key?: Key; value: Key; label: string; [key: string]: any; }