import { FieldConstructor, RuleConstructor } from '@blinkk/selective-edit'; import { EditorState } from '../../editor/state'; import { LiveEditor } from '../../editor/editor'; import { LiveEditorApiComponent } from '../../editor/api'; import { ServerApiComponent } from '../api'; export interface EditorAppComponent { api: LiveEditorApiComponent & ServerApiComponent; container: HTMLElement; editor: LiveEditor; /** * Initialize the application. * * This may be rendering a full editor interface or render information about * onboarding or other required details that it needs to render the editor. */ init(): Promise; initialFile?: string; isDev: boolean; isUnstable: boolean; options?: EditorAppOptions; state: EditorState; } export interface EditorAppOptions { } export declare abstract class EditorApp implements EditorAppComponent { container: HTMLElement; initialFile?: string; isDev: boolean; isUnstable: boolean; options?: EditorAppOptions; protected _editor?: LiveEditor; protected _state: EditorState | null; constructor(container: HTMLElement, options?: EditorAppOptions); abstract get api(): LiveEditorApiComponent & ServerApiComponent; get editor(): LiveEditor; init(): Promise; get selectiveConfig(): { fieldTypes: { aside: FieldConstructor; checkbox: FieldConstructor; checkboxMulti: FieldConstructor; color: FieldConstructor; date: FieldConstructor; datetime: FieldConstructor; exampleField: FieldConstructor; group: FieldConstructor; html: FieldConstructor; list: FieldConstructor; markdown: FieldConstructor; media: FieldConstructor; mediaList: FieldConstructor; number: FieldConstructor; radio: FieldConstructor; text: FieldConstructor; textarea: FieldConstructor; time: FieldConstructor; variant: FieldConstructor; }; ruleTypes: { length: RuleConstructor; match: RuleConstructor; pattern: RuleConstructor; range: RuleConstructor; require: RuleConstructor; }; global: { api: LiveEditorApiComponent & ServerApiComponent; labels: {}; state: EditorState; }; }; get state(): EditorState; }