import type { KeysEditorRequest } from "../../ui-core/controllers/overlay-controller.js"; import type { InkTheme } from "../render/ink-theme.js"; import { type PanelFrameInput } from "./panel-frame.js"; import { type PanelKeyResult } from "./panel-effect.js"; export interface KeysPanelRow { readonly slotId: string | undefined; readonly masked: string | undefined; readonly value: string; readonly disabled: boolean; } export interface KeysPanelState { readonly rows: readonly KeysPanelRow[]; readonly cursor: number; readonly activeIndex: number; readonly editing: boolean; readonly draft: string; readonly top: number; } export declare function keysInitialState(request: KeysEditorRequest): KeysPanelState; export declare function keysItemLabel(request: KeysEditorRequest): string; /** Endpoint-URL variants reuse this panel unmasked; secrets stay masked. */ export declare function keysRevealed(request: KeysEditorRequest): boolean; export declare function keysCanAdd(state: KeysPanelState): boolean; export declare function keysRowCount(state: KeysPanelState): number; export interface KeysKeyInput { readonly state: KeysPanelState; readonly request: KeysEditorRequest; readonly chord: string; readonly text?: string | undefined; readonly rows: number; } export declare function keysKey(input: KeysKeyInput): PanelKeyResult; export interface KeysViewInput { readonly ink: InkTheme; readonly columns: number; readonly rows: number; readonly request: KeysEditorRequest; readonly state: KeysPanelState; } export declare function keysView(input: KeysViewInput): PanelFrameInput;