/** * Block Kit control panel for the bare `/pi` command. * * Pure block builders — no I/O — so the layout is unit-testable. The slash * command and the block-action handlers in commands.ts assemble PanelState, * render it here, and post it ephemerally via response_url. */ import type { KnownBlock } from '@slack/types'; import { type ThinkingLevel } from '../types.js'; export declare const PANEL_ACTIONS: { readonly model: "pi_panel_model"; readonly thinking: "pi_panel_thinking"; readonly newSession: "pi_panel_new"; readonly stop: "pi_panel_stop"; readonly refresh: "pi_panel_refresh"; }; export interface PanelModelOption { ref: string; label: string; } export interface PanelState { channelName: string; model: string; thinking: string; workingDir: string; session: string; tokens: string; context: string; processing: boolean; models: PanelModelOption[]; /** Effective model ref, used to preselect the model dropdown ('' = unknown) */ currentModelRef: string; /** Explicit thinking override, used to preselect the dropdown ('' = none) */ currentThinking: ThinkingLevel | ''; /** One-line result of the action that triggered this re-render */ notice?: string; } export declare function buildPanelBlocks(state: PanelState): KnownBlock[];