export interface SimulatedCollabUser {
    userId: string;
    userName: string;
    color: string;
}
export interface RemoteCursorPosition {
    index: number;
    endIndex?: number;
}
export declare const useCollabUsers: () => {
    selfUser: SimulatedCollabUser;
    onlineUsers: import('vue').Ref<{
        userId: string;
        userName: string;
        color: string;
    }[], SimulatedCollabUser[] | {
        userId: string;
        userName: string;
        color: string;
    }[]>;
    remoteCursors: import('vue').Ref<Map<string, {
        user: {
            userId: string;
            userName: string;
            color: string;
        };
        position: {
            index: number;
            endIndex?: number | undefined;
        };
    }> & Omit<Map<string, {
        user: SimulatedCollabUser;
        position: RemoteCursorPosition;
    }>, keyof Map<any, any>>, Map<string, {
        user: SimulatedCollabUser;
        position: RemoteCursorPosition;
    }> | (Map<string, {
        user: {
            userId: string;
            userName: string;
            color: string;
        };
        position: {
            index: number;
            endIndex?: number | undefined;
        };
    }> & Omit<Map<string, {
        user: SimulatedCollabUser;
        position: RemoteCursorPosition;
    }>, keyof Map<any, any>>)>;
    broadcastCursor: (position: RemoteCursorPosition) => void;
    broadcastContent: (content: any) => void;
    onContentApply: (callback: (content: any) => void) => void;
    getIsApplyingRemote: () => boolean;
    start: () => void;
    stop: () => void;
};
