import { Doc } from '../../view/Doc';
import { ICursorPosition, ISelectionRange } from '../types/cursor';
export declare function useCursorSelection(docInstance?: Doc): {
    cursor: import('vue').Ref<{
        nodeId: string;
        pageId: string;
        preNodeId: string;
        preLocation: string;
        path: string[];
        pathIndex: number[];
        offset: number;
        side: import('../types/cursor').Side;
        isPlaceholder: boolean;
        phase: "preview" | "commit";
    } | null, ICursorPosition | {
        nodeId: string;
        pageId: string;
        preNodeId: string;
        preLocation: string;
        path: string[];
        pathIndex: number[];
        offset: number;
        side: import('../types/cursor').Side;
        isPlaceholder: boolean;
        phase: "preview" | "commit";
    } | null>;
    selection: import('vue').Ref<{
        anchor: {
            nodeId: string;
            pageId: string;
            preNodeId: string;
            preLocation: string;
            path: string[];
            pathIndex: number[];
            offset: number;
            side: import('../types/cursor').Side;
            isPlaceholder: boolean;
            phase: "preview" | "commit";
        };
        focus: {
            nodeId: string;
            pageId: string;
            preNodeId: string;
            preLocation: string;
            path: string[];
            pathIndex: number[];
            offset: number;
            side: import('../types/cursor').Side;
            isPlaceholder: boolean;
            phase: "preview" | "commit";
        };
    } | null, ISelectionRange | {
        anchor: {
            nodeId: string;
            pageId: string;
            preNodeId: string;
            preLocation: string;
            path: string[];
            pathIndex: number[];
            offset: number;
            side: import('../types/cursor').Side;
            isPlaceholder: boolean;
            phase: "preview" | "commit";
        };
        focus: {
            nodeId: string;
            pageId: string;
            preNodeId: string;
            preLocation: string;
            path: string[];
            pathIndex: number[];
            offset: number;
            side: import('../types/cursor').Side;
            isPlaceholder: boolean;
            phase: "preview" | "commit";
        };
    } | null>;
    dragHoverId: import('vue').Ref<string, string>;
    lastEventTs: import('vue').Ref<number, number>;
    dispose: () => void;
    subscribe: (inst?: Doc) => void;
};
