UNPKG

json-joy

Version:

Collection of libraries for building collaborative editing apps.

17 lines (16 loc) 1.04 kB
import { type NodeBuilder, type nodes } from '../../json-crdt-patch'; import type { ExtNode } from './ExtNode'; import type { ModelApi } from '../model'; import type { JsonNode } from '../nodes'; import type { JsonNodeToSchema } from '../schema/types'; import type { ExtApi } from './types'; export type AnyExtension = Extension<any, any, any, any, any, any>; export declare class Extension<Id extends number, DataNode extends JsonNode, ENode extends ExtNode<DataNode, any>, EApi extends ExtApi<ENode>, DataArgs extends any[] = any[], DataSchema extends NodeBuilder = JsonNodeToSchema<DataNode>> { readonly id: Id; readonly name: string; readonly Node: new (data: DataNode) => ENode; readonly Api: new (node: ENode, api: ModelApi<any>) => EApi; readonly schema: (...args: DataArgs) => DataSchema; constructor(id: Id, name: string, Node: new (data: DataNode) => ENode, Api: new (node: ENode, api: ModelApi<any>) => EApi, schema: (...args: DataArgs) => DataSchema); new(...args: DataArgs): nodes.ext<Id, DataSchema>; }