import type { ClientSharedPromptDraftState, ClientSharedPromptHistoryDirection } from '../../client-shared/services/prompt-input/index.js';
export type PromptInputKey = {
    upArrow?: boolean;
    downArrow?: boolean;
    leftArrow?: boolean;
    rightArrow?: boolean;
    home?: boolean;
    end?: boolean;
    return?: boolean;
    escape?: boolean;
    tab?: boolean;
    backspace?: boolean;
    delete?: boolean;
    ctrl?: boolean;
    meta?: boolean;
    super?: boolean;
    shift?: boolean;
};
export declare function PromptInput({ disabled, placeholder, submitDisabled, value, cursor, onChange, onSubmit, onComplete, onHistory, onUndo, onRedo, onSpecialKey, }: {
    disabled: boolean;
    placeholder: string;
    submitDisabled?: boolean;
    value: string;
    cursor: number;
    onChange: (state: ClientSharedPromptDraftState) => void;
    onSubmit: (value: string) => void;
    onComplete?: (value: string) => string | undefined;
    onHistory?: (direction: ClientSharedPromptHistoryDirection) => void;
    onUndo?: () => void;
    onRedo?: () => void;
    onSpecialKey?: (input: string, key: PromptInputKey) => boolean;
}): import("react/jsx-runtime").JSX.Element;
export declare function shouldKeepOptimisticPromptInputState({ current, incoming, pending, }: {
    current: ClientSharedPromptDraftState;
    incoming: ClientSharedPromptDraftState;
    pending?: ClientSharedPromptDraftState;
}): boolean;
export type PromptRenderLine = {
    before: string;
    cursor: string;
    after: string;
    hasCursor: boolean;
};
export declare function buildPromptRenderLines(value: string, cursor: number, maxVisibleLines: number, width?: number): PromptRenderLine[];
export declare function resolvePromptInputRenderWidth(stdoutColumns?: number): number;
//# sourceMappingURL=PromptInput.d.ts.map