import type { Event } from '@difizen/mana-common';
import type { IKeyboardLayoutInfo, IKeyboardMapping } from 'native-keymap';
export interface NativeKeyboardLayout {
    info: IKeyboardLayoutInfo;
    mapping: IKeyboardMapping;
}
export declare const KeyboardLayoutProvider: unique symbol;
export interface KeyboardLayoutProvider {
    getNativeLayout: () => Promise<NativeKeyboardLayout>;
}
export declare const KeyboardLayoutChangeNotifier: unique symbol;
export interface KeyboardLayoutChangeNotifier {
    onDidChangeNativeLayout: Event<NativeKeyboardLayout>;
}
export interface KeyValidationInput {
    code: string;
    character: string;
    shiftKey?: boolean;
    ctrlKey?: boolean;
    altKey?: boolean;
}
export declare const KeyValidator: unique symbol;
export interface KeyValidator {
    validateKey: (input: KeyValidationInput) => void;
}
//# sourceMappingURL=keyboard-protocol.d.ts.map