import * as Y from 'yjs';
import EventEmitter from 'eventemitter3';
import { WhiteboardPermissionFlag } from '../WhitePermissions';
import type { UserManager } from '@netless/forge-room';
export interface TrashedElementsModelEvents {
    elementsChange: (userId: string, elementIds: string[]) => void;
    removeElementForSelf: (userId: string, elementIds: string[]) => void;
}
export declare class TrashedElementsModel extends EventEmitter<TrashedElementsModelEvents> {
    private requestUserMap;
    private userManager;
    private hasPermission;
    private observers;
    private get hasDeleteSelfPermission();
    private get hasDeleteOthersPermission();
    constructor(userManager: UserManager, requestUserMap: (userId: string) => Y.Map<any>, hasPermission: (flag: WhiteboardPermissionFlag) => boolean);
    private handleUserLeave;
    private handleUserJoin;
    private handleUserTrashElementsChange;
    private createModel;
    addTrashedElementForSelf(elementId: string, ownerId: string): void;
    removeAllTrashedElementsForSelf(): void;
    dispose(): void;
}
//# sourceMappingURL=TrashedElementsModel.d.ts.map