import type EventEmitter2 from "eventemitter2"; import type { RoomMemberManager } from "../members"; import { ApplianceManagerLike, BaseSubWorkModuleProps, FilterRenderType, _ArrayTrue, _ObjectTrue } from "../plugin/types"; import type { MasterControlForWorker } from "./mainEngine"; import { EPostMessageType } from "./enum"; import { ISerializableStorageRenderScenesData, PageId, ScenePath, Uid, ViewId, WorkId } from "../collector/types"; export interface RenderCotrol { readonly roomMemberManager: RoomMemberManager; readonly control: ApplianceManagerLike; /** 本地发布可显示绘制权限到服务端 */ publishRender(param: { viewId: Uid; option: { render?: _ArrayTrue; hide?: _ArrayTrue; clear?: _ArrayTrue; }; isSync: boolean; }): void; /** 发布当个用户显示绘制权限到服务端 */ publishOneRender(viewId: Uid, uid: Uid, type: FilterRenderType, isSync: boolean): void; /** 发布当个用户删除笔记权限到服务端 */ publishOneClear(viewId: Uid, uid: Uid, isAdd: boolean, isSync: boolean): void; /** 服务端同步可显示绘制权限 */ syncRenderUids(viewId: Uid, _render?: _ObjectTrue, _hide?: _ObjectTrue, _clear?: _ObjectTrue): void; /** 销毁view的render数据 */ destoryByViewId(viewId: string): void; } export type AuthRenderViewsData = Map; export type AuthRenderScenesData = Map; export type AuthRenderSceneData = { render: Uid; pages: AuthPagesData; }; export type AuthPagesData = Map>; export declare class RenderCotrolImple implements RenderCotrol { readonly control: ApplianceManagerLike; readonly roomMemberManager: RoomMemberManager; readonly worker: MasterControlForWorker; readonly publicMsgEmitter: EventEmitter2; private renderUids; private pageAuth; private isLocalRender; private isCurWritable; constructor(props: BaseSubWorkModuleProps); get isWritable(): boolean; onWritableChange(bol: boolean): void; addPage(porps: { viewId: ViewId; pageId?: PageId; render?: Uid; elementIds?: Set; }, isActive?: boolean): void; delPage(pageId: string, viewId: string): void; private delViewPage; clearRenderPage(viewId: string, scenePath: string, isSync?: boolean): void; hasPage(pageId: string, viewId: string, scenePath: string): boolean; getPageInfo(pageId: string, viewId: string, scenePath: string): Set | undefined; addRenderPageElementId(porps: { viewId: ViewId; scenePath: string; elementId: WorkId; }, isSync?: boolean, isActive?: boolean): void; delRenderPageElementId(porps: { viewId: ViewId; scenePath: string; elementId: WorkId; }, isSync?: boolean, isActive?: boolean): void; setPageRender(viewId: string, scenePath: string, pageId: Uid, isSync?: boolean): void; isRenderAble(param: { uid: Uid; viewId: string; scenePath?: ScenePath; filterLocalSelf?: boolean; }): boolean; isClearAble(param: { uid: Uid; viewId: Uid; scenePath?: ScenePath; filterLocalSelf?: boolean; elementId?: WorkId; }): boolean; isFilterAble(param: { viewId: string; scenePath: ScenePath; elementId: WorkId; }, type?: EPostMessageType): boolean; isFilterCursor(viewId: string): boolean; isUsePageAuth(viewId: string): boolean; publishRender(param: { viewId: Uid; option?: { render?: _ArrayTrue; hide?: _ArrayTrue; clear?: _ArrayTrue; }; isSync: boolean; }): void; publishOneRender(viewId: Uid, uid: Uid, type: FilterRenderType, isSync?: boolean): void; publishOneClear(viewId: Uid, uid: Uid, isAdd: boolean, isSync?: boolean): void; syncRenderUids(viewId: Uid, _render?: _ObjectTrue, _hide?: _ObjectTrue, _clear?: _ObjectTrue): void; syncPageAuth(viewId: Uid, viewData?: ISerializableStorageRenderScenesData, forceUpdate?: boolean): void; destoryByViewId(viewId: string, isLocal?: boolean): void; private renderEffect; private pageAuthEffect; private cloneElementIds; private delElementIds; }