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; export declare class Extension, EApi extends ExtApi, DataArgs extends any[] = any[], DataSchema extends NodeBuilder = JsonNodeToSchema> { readonly id: Id; readonly name: string; readonly Node: new (data: DataNode) => ENode; readonly Api: new (node: ENode, api: ModelApi) => EApi; readonly schema: (...args: DataArgs) => DataSchema; constructor(id: Id, name: string, Node: new (data: DataNode) => ENode, Api: new (node: ENode, api: ModelApi) => EApi, schema: (...args: DataArgs) => DataSchema); new(...args: DataArgs): nodes.ext; }