import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
import type { PanelResourceContract, PanelHealthState } from '@pellux/goodvibes-sdk/platform/runtime/perf/panel-contracts';
export type PanelCategory = 'development' | 'agent' | 'monitoring' | 'session' | 'ai';
export interface Panel {
    id: string;
    name: string;
    icon: string;
    category: PanelCategory;
    onActivate(): void;
    onDeactivate(): void;
    onDestroy(): void;
    render(width: number, height: number): Line[];
    isTransient: boolean;
    isPinned: boolean;
    needsRender: boolean;
    resourceContract?: Readonly<PanelResourceContract>;
    healthState?: Readonly<PanelHealthState>;
    handleInput?(key: string): boolean;
}
export interface PanelRegistration extends Pick<Panel, 'id' | 'name' | 'icon' | 'category'> {
    factory: () => Panel;
    description: string;
    /**
     * Instantiate this panel during bootstrap and retain the instance when it is
     * closed so its background data continues to accumulate before the user
     * actively opens the workspace.
     */
    preload?: boolean;
}
//# sourceMappingURL=types.d.ts.map