import { Text } from "../../doc/src"; import { EditorSelection } from "./selection"; import { Plugin, StateField } from "./plugin"; import { Transaction } from "./transaction"; declare class Configuration { readonly plugins: ReadonlyArray; readonly fields: ReadonlyArray>; readonly multipleSelections: boolean; readonly tabSize: number; readonly lineSeparator: string | null; constructor(plugins: ReadonlyArray, fields: ReadonlyArray>, multipleSelections: boolean, tabSize: number, lineSeparator: string | null); static create(config: EditorStateConfig): Configuration; updateTabSize(tabSize: number): Configuration; updateLineSeparator(lineSep: string | null): Configuration; } export interface EditorStateConfig { doc?: string | Text; selection?: EditorSelection; plugins?: ReadonlyArray; tabSize?: number; lineSeparator?: string | null; multipleSelections?: boolean; } export declare class EditorState { private readonly config; readonly doc: Text; readonly selection: EditorSelection; /** @internal */ constructor(config: Configuration, doc: Text, selection?: EditorSelection); getField(field: StateField): T | undefined; readonly plugins: ReadonlyArray; getPluginWithField(field: StateField): Plugin; /** @internal */ applyTransaction(tr: Transaction): EditorState; readonly transaction: Transaction; readonly tabSize: number; readonly multipleSelections: boolean; joinLines(text: ReadonlyArray): string; splitLines(text: string): string[]; static create(config?: EditorStateConfig): EditorState; } export {};