import { SchemaSpec } from 'prosemirror-model'; import { Plugin } from 'prosemirror-state'; import { Constructor } from '../../../shared/utils/mixins'; import { RteInstanceImpl } from './instance'; import { TextblockAttrs, TextblockAttrSpec } from './utils/textblock-attrs'; import { ToolbarItemSpec } from './features/toolbar'; import { TextblockMarks, TextblockMarkSpec } from './utils/textblock-marks'; import { InputRuleSpec } from './features/internal/input-rules'; type Contribution = { priority: number; featureName: string; value: T; }; export declare const sortedContributions: (contributions: Contribution[]) => T[]; export declare const contributionPriority: { highest: number; high: number; default: number; low: number; lowest: number; }; export type StyleContribution = Contribution; export type SchemaContribution = Contribution>; export type TextblockAttrContribution = Contribution; export type TextblockMarkContribution = Contribution; export type PluginContribution = Contribution; export type ToolbarItemContribution = Contribution; export type InputRuleContribution = Contribution; export declare abstract class RteFeature { } export declare abstract class RteFeatureImpl { abstract name: string; featureId?: string; protected contribution(value: T, order?: number): Contribution; getStyles(): StyleContribution[]; getSchema(_textblockAttrs: TextblockAttrs, _textblockMarks: TextblockMarks): SchemaContribution[]; getTextblockAttrs(): TextblockAttrContribution[]; getTextblockMarks(): TextblockMarkContribution[]; getPlugins(_rte: RteInstanceImpl): PluginContribution[]; getToolbarItems(_rte: RteInstanceImpl): ToolbarItemContribution[]; getInputRules(_rte: RteInstanceImpl): InputRuleContribution[]; getFeatures(): RteFeatureImpl[]; getPublicInterface(_rte: RteInstanceImpl): any; } export declare const getFeatureImpl: (facade: RteFeature) => RteFeatureImpl; export declare const featureFacade: >(FeatureImpl: C) => { new (...args: ConstructorParameters): {}; }; export declare function getPublicInterface(facade: Constructor): unknown; export {};