///
import { EventEmitter } from 'events';
import { CaretPos, RemoteUserCaretPos, Editor, OnlineUsers, BlockElement } from "../../interface";
interface RemoteUserCaretRange {
containerId: string;
blockId: string;
offset: number;
userId: string;
displayName: string;
avatarUrl: string;
lastUpdated: number;
color: string;
selectionColor: string;
endBlockId: string;
endOffset: number;
}
export default class RemoteCaretPos {
caretPosMap: Map;
events: EventEmitter;
colors: string[];
selectionColors?: string[];
editor: Editor;
constructor(editor: Editor);
clear(): void;
setCaretPos(userId: string, displayName: string, avatarUrl: string, colorIndex: number, pos: CaretPos, posEnd: CaretPos, keyPressed: boolean): void;
getSelectionColor(colorIndex: number): string;
on(event: 'remoteCaretPosChanged', callback: (effectBlocks: string[], flashUserId: string | null) => void): void;
removeAllListeners(): void;
getCaretPosesInBlock(blockId: string): RemoteUserCaretPos[];
updateOnlineUsers(users: OnlineUsers): void;
hasRemoteCaret(block: BlockElement): boolean;
getRemoteCaretOfBlock(block: BlockElement): RemoteUserCaretRange | null;
}
export {};