import type { LiteralUnion } from 'type-fest'; export type ModifierKeys = 'Alt' | 'AltGraph' | 'CapsLock' | 'Ctrl' | 'Fn' | 'FnLock' | 'Hyper' | 'Meta' | 'NumLock' | 'ScrollLock' | 'Shift' | 'Super' | 'Symbol' | 'SymbolLock'; export declare const isModifierKey: (key: string) => key is ModifierKeys; export type WhitespaceKeys = 'Enter' | 'Tab' | 'Space'; export declare const isWhitespaceKeys: (key: string) => key is WhitespaceKeys; export type NavigationKeys = 'ArrowDown' | 'ArrowLeft' | 'ArrowRight' | 'ArrowUp' | 'Arrow' | 'End' | 'Home' | 'PageDown' | 'PageUp' | 'Escape'; export declare const isNavigationKey: (key: string) => key is NavigationKeys; export type FunctionKeys = 'F1' | 'F2' | 'F3' | 'F4' | 'F5' | 'F6' | 'F7' | 'F8' | 'F9' | 'F10' | 'F11' | 'F12' | 'F13' | 'F14' | 'F15' | 'F16' | 'F17' | 'F18' | 'F19' | 'F20' | 'Soft1' | 'Soft2' | 'Soft3' | 'Soft4'; export declare const isFunctionKey: (key: string) => key is FunctionKeys; export type Numbers = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'; export declare const isNumber: (key: string) => key is Numbers; export type NumericKeypadKeys = 'Decimal' | 'Key11' | 'Key12' | 'Multiply' | 'Add' | 'Clear' | 'Divide' | 'Subtract' | 'Separator' | Numbers; export declare const isNumericKeypadKey: (key: string) => key is NumericKeypadKeys; export type LatinKeys = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z'; export declare const isLatinKey: (key: string) => key is LatinKeys; export type NonAlphaNumericKeys = '/' | '.' | ',' | ']' | '[' | ';' | '<' | '>' | '?' | '!' | '@' | '#' | '$' | '%' | '^' | '&' | '*' | '(' | ')' | '-' | '=' | '_' | '+' | '{' | '}' | '|' | ':' | '"' | '~' | '`'; export declare const isNonAlphaNumericKey: (key: string) => key is NonAlphaNumericKeys; export type AnyKey = LiteralUnion; export declare const isAnyKey: (key: string) => key is AnyKey; export type TriggerKey = LatinKeys | Numbers | WhitespaceKeys | NavigationKeys | NonAlphaNumericKeys | NumericKeypadKeys | FunctionKeys; export declare const isTriggerKey: (key: string) => key is TriggerKey; export type BasicKeyCombination = TriggerKey | `${ModifierKeys}+${TriggerKey}` | `${ModifierKeys}+${ModifierKeys}+${TriggerKey}`; export type ValidKeyCombination = T extends `${infer Modifier1}+${infer Modifier2}+${infer Trigger}` ? Modifier1 extends Modifier2 ? '[Error: modifier keys should be unique]' : Modifier1 extends ModifierKeys ? Modifier2 extends ModifierKeys ? Trigger extends TriggerKey ? T : '[Error: invalid trigger key]' : '[Error: invalid second modifier key]' : '[Error: invalid first modifier key]' : T extends `${infer Modifier}+${infer Trigger}` ? Modifier extends ModifierKeys ? Trigger extends TriggerKey ? T : '[Error: invalid trigger key]' : '[Error: invalid modifier key]' : T extends TriggerKey ? T : '[Error: invalid trigger key]'; //# sourceMappingURL=key-types.d.ts.map