import * as Y from 'yjs';
import EventEmitter from 'eventemitter3';
import { UserManager } from '@netless/forge-room';
import { WhiteboardPermissionFlag } from '../WhitePermissions';
export interface SelectElementsModelEvents {
    elementsChange: (userId: string, elementIds: string[]) => void;
}
export declare class SelectElementsModel extends EventEmitter<SelectElementsModelEvents> {
    private requestUserMap;
    private userManager;
    private hasPermission;
    private observers;
    private get hasEditSelfPermission();
    private get hasEditOthersPermission();
    constructor(userManager: UserManager, requestUserMap: (userId: string) => Y.Map<any>, hasPermission: (flag: WhiteboardPermissionFlag) => boolean);
    private handleUserLeave;
    private handleUserJoin;
    private handleUserSelectElementsChange;
    private createModel;
    addSelectElementForSelf(elements: {
        elementId: string;
        ownerId: string;
    }[]): void;
    clearSelectElementForSelf(): void;
    dispose(): void;
}
//# sourceMappingURL=SelectElementsModel.d.ts.map