import { SectionIdent } from '@keymanapp/ldml-keyboard-constants'; import { KMXPlus, Constants } from '@keymanapp/common-types'; import { LDMLKeyboard } from '@keymanapp/developer-utils'; import { SectionCompiler } from "./section-compiler.js"; import DependencySections = KMXPlus.DependencySections; import Keys = KMXPlus.Keys; import KeysKeys = KMXPlus.KeysKeys; import { Substitutions } from './substitution-tracker.js'; export declare class KeysCompiler extends SectionCompiler { static validateSubstitutions(keyboard: LDMLKeyboard.LKKeyboard, st: Substitutions): boolean; get id(): SectionIdent; get dependencies(): Set; /** * * @returns just the non-touch layers. */ hardwareLayers(): LDMLKeyboard.LKLayers[]; validate(): boolean; static addKeysFromFlicks(usedFlicks: Set, flickHash: Map, usedKeys: Set): void; private getFlicks; /** a set with all key ids used in all layers */ private getLayerKeyIds; /** the entire keybag (used or unused) as a hash */ private getKeyBag; compile(sections: DependencySections): Keys; /** list of reserved keys, for tests */ static readonly reserved_keys: string[]; /** count of reserved keys, for tests */ static readonly reserved_count: number; /** load up all reserved keys */ getReservedKeys(sections: KMXPlus.DependencySections): Map; static addUsedGestureKeys(layerKeyIds: string[], keyBag: Map, usedKeys: Set): void; /** * * @param keyBag the keybag as a hash * @param layerKeyIds list of keys from the layer, to extract used flicks * @param usedKeys will be populated with keys used in the flick */ loadFlicks(sections: DependencySections, sect: Keys, keyBag: Map, layerKeyIds: string[], usedKeys: Set): void; static getUsedFlicks(layerKeyIds: string[], keyBag: Map): Set; loadKeys(sections: DependencySections, sect: Keys, keyBag: Map, layerKeyIds: string[], usedKeys: Set): void; private getKeymapFromForm; static getKeymapFromForms(forms: LDMLKeyboard.LKForm[], hardware: string, badScans?: Set): Constants.KeyMap; static getKeymapFromScancodes(ldmlForm: LDMLKeyboard.LKForm, badScans?: Set): Constants.KeyMap; /** * Validate for purpose of kmap * @param hardware the 'form' parameter * @param layer * @param keyHash the keybag's hash * @returns true if valid */ private validateHardwareLayerForKmap; private compileHardwareLayerToKmap; } //# sourceMappingURL=keys.d.ts.map