import { Optional } from '@ephox/katamari';
import { SugarElement } from '@ephox/sugar';
import { GeneralKeyingConfig, KeyRuleHandler } from '../keying/KeyingModeTypes';
export type ElementMover<C, S> = (elem: SugarElement<HTMLElement>, focused: SugarElement<HTMLElement>, config: C, state: S) => Optional<SugarElement<HTMLElement>>;
declare const west: <C extends GeneralKeyingConfig, S>(moveLeft: ElementMover<C, S>, moveRight: ElementMover<C, S>) => KeyRuleHandler<C, S>;
declare const east: <C extends GeneralKeyingConfig, S>(moveLeft: ElementMover<C, S>, moveRight: ElementMover<C, S>) => KeyRuleHandler<C, S>;
declare const north: <C extends GeneralKeyingConfig, S>(move: ElementMover<C, S>) => KeyRuleHandler<C, S>;
declare const south: <C extends GeneralKeyingConfig, S>(move: ElementMover<C, S>) => KeyRuleHandler<C, S>;
declare const move: <C extends GeneralKeyingConfig, S>(move: ElementMover<C, S>) => KeyRuleHandler<C, S>;
export { east, west, north, south, move };
//# sourceMappingURL=DomMovement.d.ts.map