import type { ClientSharedPromptDraftState } from '../../../client-shared/services/prompt-input/index.js';
import type { PromptInputKey } from '../../components/PromptInput.js';
export type CliV2PromptInputCommand = {
    kind: 'submit';
} | {
    kind: 'insert';
    input: string;
} | {
    kind: 'history';
    direction: 'previous' | 'next';
} | {
    kind: 'undo';
} | {
    kind: 'redo';
} | {
    kind: 'deletePreviousCharacter';
} | {
    kind: 'deletePreviousWord';
} | {
    kind: 'deleteBeforeCursor';
} | {
    kind: 'deleteAfterCursor';
} | {
    kind: 'move';
    direction: 'start' | 'end' | 'previousCharacter' | 'nextCharacter' | 'previousWord' | 'nextWord';
};
/**
 * Owns cli-v2 terminal key translation for the prompt line editor.
 *
 * Terminal input is host-specific: Option usually arrives as Meta, while Cmd
 * only arrives as Super in terminals that support the Kitty keyboard protocol.
 * This service maps the keys Ink exposes into shared prompt text operations.
 */
export declare class CliV2PromptLineEditorService {
    static resolveCommand(input: string, key: PromptInputKey): CliV2PromptInputCommand | undefined;
    static applyCommand(command: Exclude<CliV2PromptInputCommand, {
        kind: 'submit' | 'history' | 'undo' | 'redo';
    }>, state: ClientSharedPromptDraftState): ClientSharedPromptDraftState;
}
//# sourceMappingURL=prompt-line-editor-service.d.ts.map