export type ClientSharedPromptDraftState = {
    value: string;
    cursor: number;
};
export type ClientSharedPromptHistoryState = {
    entries: string[];
    index?: number;
    savedDraft?: ClientSharedPromptDraftState;
};
export type ClientSharedPromptHistoryDirection = 'previous' | 'next';
export type ClientSharedPromptUndoRedoState = {
    undoStack: ClientSharedPromptDraftState[];
    redoStack: ClientSharedPromptDraftState[];
};
export type ClientSharedDirectShellDraft = {
    command: string;
};
/**
 * Owns interface-neutral prompt draft and prompt history semantics.
 *
 * Interfaces own key-event capture and rendering. This service owns the pure
 * text-editing and prompt-history rules so web-v2 and cli-v2 do not drift on
 * which submitted prompts are recorded or how history navigation restores a
 * draft that was in progress before browsing history.
 */
export declare class ClientSharedPromptInputService {
    static parseDirectShellDraft(value: string): ClientSharedDirectShellDraft | undefined;
    static clampCursor(value: string, cursor: number): number;
    static insertText(state: ClientSharedPromptDraftState, input: string): ClientSharedPromptDraftState;
    static deletePreviousCharacter(state: ClientSharedPromptDraftState): ClientSharedPromptDraftState;
    static deletePreviousWord(state: ClientSharedPromptDraftState): ClientSharedPromptDraftState;
    static deleteBeforeCursor(state: ClientSharedPromptDraftState): ClientSharedPromptDraftState;
    static deleteAfterCursor(state: ClientSharedPromptDraftState): ClientSharedPromptDraftState;
    static moveCursor(state: ClientSharedPromptDraftState, direction: 'start' | 'end' | 'previousCharacter' | 'nextCharacter' | 'previousWord' | 'nextWord'): number;
    static recordPrompt(state: ClientSharedPromptHistoryState, value: string, maxEntries?: number): ClientSharedPromptHistoryState;
    static navigateHistory(args: {
        state: ClientSharedPromptHistoryState;
        currentDraft: ClientSharedPromptDraftState;
        direction: ClientSharedPromptHistoryDirection;
    }): {
        history: ClientSharedPromptHistoryState;
        draft: ClientSharedPromptDraftState;
    } | undefined;
    static canNavigateHistory(direction: ClientSharedPromptHistoryDirection, state: ClientSharedPromptDraftState): boolean;
    static recordUndoState(state: ClientSharedPromptUndoRedoState, currentDraft: ClientSharedPromptDraftState, nextDraft: ClientSharedPromptDraftState, maxStates?: number): ClientSharedPromptUndoRedoState;
    static undoPromptEdit(state: ClientSharedPromptUndoRedoState, currentDraft: ClientSharedPromptDraftState): {
        history: ClientSharedPromptUndoRedoState;
        draft: ClientSharedPromptDraftState;
    } | undefined;
    static redoPromptEdit(state: ClientSharedPromptUndoRedoState, currentDraft: ClientSharedPromptDraftState): {
        history: ClientSharedPromptUndoRedoState;
        draft: ClientSharedPromptDraftState;
    } | undefined;
    static clearUndoRedo(): ClientSharedPromptUndoRedoState;
    private static removeRange;
    private static areDraftsEqual;
    private static findPreviousWordBoundary;
    private static findNextWordBoundary;
}
//# sourceMappingURL=prompt-input-service.d.ts.map