import { type Component, type Focusable } from "@sheason/pi-tui";
import type { RemoteInteractiveGroupAgentView } from "../../interactive/remote-interactive-view.js";
export interface AgentSelectionConstraint {
    /** If set, agents whose `kind` matches this value cannot be selected. */
    blockedKind?: "root" | "child" | "guest";
    /** Human-readable reason shown for blocked agents. */
    blockedReason?: string;
}
export declare class RemoteAgentSelectorComponent implements Component, Focusable {
    private agents;
    private currentAgentId;
    private readonly onSelectAgent;
    private readonly onCancelSelection;
    private readonly onSelectError?;
    private readonly constraint;
    private selectedIndex;
    focused: boolean;
    constructor(agents: RemoteInteractiveGroupAgentView[], currentAgentId: string, onSelectAgent: (agent: RemoteInteractiveGroupAgentView) => void | Promise<void>, onCancelSelection: () => void, onSelectError?: ((error: unknown) => void) | undefined, constraint?: AgentSelectionConstraint);
    getFocusTarget(): Component;
    updateAgents(agents: RemoteInteractiveGroupAgentView[], currentAgentId: string): void;
    private isAgentBlocked;
    render(width: number): string[];
    handleInput(data: string): void;
    invalidate(): void;
    private renderRow;
}
//# sourceMappingURL=agent-selector.d.ts.map