@textbus/collaborate
Version:
Textbus is a rich text editor and framework that is highly customizable and extensible to achieve rich wysiwyg effects.
46 lines (45 loc) • 1.45 kB
TypeScript
import { Doc, Doc as YDoc } from 'yjs';
import { AsyncComponent, AsyncSlot } from '@textbus/core';
/**
* 子文档加载器
*/
export declare abstract class SubModelLoader {
/**
* 通过插槽获取已加载的文档
* @param slot
*/
abstract getLoadedModelBySlot(slot: AsyncSlot): YDoc | null;
/**
* 通过组件获取已加载的文档
* @param component
*/
abstract getLoadedModelByComponent(component: AsyncComponent): YDoc | null;
/**
* 当本地新增异步子插槽时调用
* @param slot
*/
abstract createSubModelBySlot(slot: AsyncSlot): Promise<YDoc>;
/**
* 当本地新增异步子组件时调用
* @param component
*/
abstract createSubModelByComponent(component: AsyncComponent): Promise<YDoc>;
/**
* 当远程异步子插槽同步到本地时调用
* @param slot
*/
abstract loadSubModelBySlot(slot: AsyncSlot): Promise<YDoc>;
/**
* 当远程异步子组件同步到本地时调用
* @param component
*/
abstract loadSubModelByComponent(component: AsyncComponent): Promise<YDoc>;
}
export declare class NonSubModelLoader extends SubModelLoader {
createSubModelBySlot(): Promise<Doc>;
createSubModelByComponent(): Promise<Doc>;
loadSubModelByComponent(): Promise<Doc>;
loadSubModelBySlot(): Promise<Doc>;
getLoadedModelBySlot(): Doc;
getLoadedModelByComponent(): Doc;
}