import { type Observable } from '../../utils';
import { EventData } from './selection.utils';
import { Cell, Nullable, RangeArea, SelectionStoreState } from "../../types/index";
type Config = {
    selectionStore: Observable<SelectionStoreState>;
    change(val?: any): void;
    cancel(): void;
    clearCell(): void;
    focus(focus: Cell, changes: Partial<Cell>, focusNextViewport?: number): boolean;
    getData(): any;
    internalPaste(): void;
    range(range: RangeArea | null): boolean;
    selectAll(): void;
};
export declare class KeyboardService {
    private sv;
    constructor(sv: Config);
    /**
     * Appends printable key input that arrives after edit mode was requested
     * but before the editor input has mounted or received focus.
     */
    private appendPendingEditValue;
    keyDown(e: KeyboardEvent, canRange: boolean, isEditMode: boolean, { range, focus }: Nullable<Pick<EventData, 'range' | 'focus'>>): Promise<void>;
    private selectAll;
    keyChangeSelection(e: KeyboardEvent, canRange: boolean): Promise<boolean>;
    keyPositionChange(changes: Partial<Cell>, range: RangeArea | null, focus: Cell | null, isMulti?: boolean): boolean;
    /** Monitor key direction changes */
    changeDirectionKey(e: KeyboardEvent, canRange: boolean): {
        changes: Partial<Cell>;
        isMulti?: boolean;
    } | void;
}
export {};
