import type { Component, TUI } from "@earendil-works/pi-tui"; /** * Put a `label` badge on the right of the editor's top border, before its last * two columns, as the conversation window badges its target. The badge takes * the border's own colour, so it follows Pi's thinking level. Only plain border * cells are replaced: Pi's scroll indicator or working label keep their place. */ export declare const withBorderBadge: (lines: string[], label: string | undefined) => string[]; /** * Places a component after Pi's footer, where Claude Code keeps its agent * list. Pi has no extension slot there: widgets render above or below the * editor, both above the footer. So the component registers a zero-height * `anchor` as an ordinary below-editor widget, and the dock appends the real * component to the container that holds Pi's below-editor widgets and its * footer. That is the root in the regular renderer and the input dock in the * fullscreen one. The dock touches nothing unless the footer is the last node * after the widget container, so another layout leaves the caller to fall back. */ export declare class FooterDock { #private; private readonly tui; private readonly anchor; private readonly component; /** Label for the editor's top border, read on every frame; undefined draws none. */ private readonly badge?; constructor(tui: TUI, anchor: Component, component: Component, /** Label for the editor's top border, read on every frame; undefined draws none. */ badge?: (() => string | undefined) | undefined); /** * True while the editor border shows the badge. Pi renders its editor before * the docked list in every frame, so the list reads this frame's outcome. */ get badgeShown(): boolean; /** * Fullscreen stacks shrink every input-dock child when overfull, including * one-line status widgets. Give our list only the rows left after Pi's own * editor, widgets and footer, reserving the transcript's native minimum row. * Regular mode scrolls the transcript instead and needs no extra cap. */ availableRows(width: number): number | undefined; /** * Keep the component after the footer: `docked` when it already is, `moved` * when this call placed it, `unavailable` when the layout is not Pi's. */ sync(): "docked" | "moved" | "unavailable"; detach(): void; } //# sourceMappingURL=footer-dock.d.ts.map