import { Optional } from '@ephox/katamari';
import { EventArgs } from '@ephox/sugar';
import { KeyRuleHandler } from '../keying/KeyingModeTypes';
import * as KeyMatch from './KeyMatch';
export interface KeyRule<C, S> {
    matches: KeyMatch.KeyMatcher;
    classification: KeyRuleHandler<C, S>;
}
declare const basic: <C, S>(key: number, action: KeyRuleHandler<C, S>) => KeyRule<C, S>;
declare const rule: <C, S>(matches: KeyMatch.KeyMatcher, action: KeyRuleHandler<C, S>) => KeyRule<C, S>;
declare const choose: <C, S>(transitions: KeyRule<C, S>[], event: EventArgs<KeyboardEvent>) => Optional<KeyRuleHandler<C, S>>;
export { basic, rule, choose };
//# sourceMappingURL=KeyRules.d.ts.map