import type { StatefulView } from "../stateful-view.ts";
import { type WrappingSelectItem, type WrappingSelectTheme } from "./wrapping-select.ts";
/**
 * Maximum number of option rows visible in the WrappingSelect window. Lifted here from
 * `preview-pane.ts` so the cap travels with the option-list owner.
 */
export declare const MAX_VISIBLE_OPTIONS = 10;
export interface OptionListViewConfig {
    items: readonly WrappingSelectItem[];
    theme: WrappingSelectTheme;
}
/**
 * Per-tick projection of OptionListView state. After Phase 11b, `inputBuffer`
 * is part of the props bag — the session-owned `inlineInput` (a headless
 * `pi-tui` Input instance) supplies its current `getValue()` here per tick.
 * `OptionListView` is purely props-driven; the imperative buffer surface and
 * read-back getters are gone.
 */
export interface OptionListViewProps {
    selectedIndex: number;
    focused: boolean;
    inputBuffer: string;
    inputCaret: number;
    /** Optional previously-confirmed indicator. Omit when no marker should be drawn. */
    confirmed?: {
        index: number;
        labelOverride?: string;
    };
}
/**
 * Sole owner of the option list's interactive state. Wraps a single
 * `WrappingSelect`. Implements `StatefulView<OptionListViewProps>`:
 * `setProps` is the only mutator; render output reflects the last props
 * received.
 */
export declare class OptionListView implements StatefulView<OptionListViewProps> {
    private readonly select;
    constructor(config: OptionListViewConfig);
    setProps(props: OptionListViewProps): void;
    handleInput(_data: string): void;
    invalidate(): void;
    render(width: number): string[];
}
//# sourceMappingURL=option-list-view.d.ts.map