import { System } from '../../../system';
export declare function emitKeyboardEvent(system: System, type: string, init: KeyboardEventInit): void;
export declare function keydownActiveElement(system: System, key: string): Element;
export declare function keydownElement(system: System, element: Element, key: string, modifier?: {
    ctrlKey?: boolean;
    shiftKey?: boolean;
    altKey?: boolean;
}): void;
export type TextState = {
    value: string;
    selectionStart: number;
    selectionEnd: number;
    selectionDirection: 'forward' | 'backward' | 'none';
};
export declare function processKeydown({ value, selectionStart, selectionEnd, selectionDirection, }: TextState, { ctrlKey, shiftKey, altKey }: {
    ctrlKey: any;
    shiftKey: any;
    altKey: any;
}, key: string): TextState;
export declare function processBackspace({ value, selectionStart, selectionEnd, selectionDirection, }: TextState, { ctrlKey, shiftKey, altKey }: {
    ctrlKey: any;
    shiftKey: any;
    altKey: any;
}): TextState;
export declare function writeToInput(input: HTMLInputElement, key: string, { ctrlKey, shiftKey, altKey, }?: {
    ctrlKey?: boolean;
    shiftKey?: boolean;
    altKey?: boolean;
}): void;
export declare const getSelectionRange: (system: System) => {
    selectionStart: number;
    selectionEnd: number;
    selectionDirection: "forward" | "backward" | "none" | null;
};
export declare function selectElementContents(system: System, element: HTMLDivElement, selectionStart: number, selectionEnd: number): void;
export declare function keydownContentEditable(system: System, input: HTMLDivElement, key: string, { ctrlKey, shiftKey, altKey, }?: {
    ctrlKey?: boolean;
    shiftKey?: boolean;
    altKey?: boolean;
}): void;
export declare function writeToContentEditable(system: System, input: HTMLDivElement, value: string): void;
export declare function writeToTextField(system: System, input: HTMLInputElement | HTMLTextAreaElement, value: string): void;
