import { BuiltinComponentType } from '../../constants';
import { Doc } from '../../view/Doc';
import { MoveOpts } from '../../event/types';
import { MovementHandler } from './types';
import { HitResult } from '../hit/types';
import { ICursorPosition } from '../types/cursor';
/**
 * 按组件类型分发 movement handler
 */
export declare class MovementRegistry {
    private handlers;
    register(component: BuiltinComponentType, handler: MovementHandler): void;
    unregister(component: BuiltinComponentType): void;
    get(component: BuiltinComponentType): MovementHandler | undefined;
    /**
     * 执行一次移动请求，返回 HitResult
     * todo 移动的时候需要处理组件 后续需要重构下
     */
    move(doc: Doc, cursor: ICursorPosition, opts: MoveOpts): HitResult | null;
}
