import { type Component, Container } from "@dreb/tui";
export interface CopyMessageItem {
    index: number;
    roleLabel: string;
    preview: string;
}
/**
 * Inner list component with multi-select support.
 */
declare class CopyMessageList implements Component {
    private items;
    private selectedIndex;
    private selected;
    private maxVisible;
    onCopy?: (selectedIndices: number[]) => void | Promise<void>;
    onCancel?: () => void;
    constructor(items: CopyMessageItem[], maxVisible?: number);
    getMaxVisible(): number;
    invalidate(): void;
    render(width: number): string[];
    handleInput(keyData: string): void;
}
/**
 * Outer container that wraps the list with header and controls.
 */
export declare class CopySelectorComponent extends Container {
    private messageList;
    constructor(items: CopyMessageItem[], onCopy: (selectedIndices: number[]) => void | Promise<void>, onCancel: () => void, maxVisible?: number);
    getMessageList(): CopyMessageList;
}
export {};
//# sourceMappingURL=copy-selector.d.ts.map