export declare type SelectionRange = { start: number; end: number; collapsed: boolean; direction: 'ltr' | 'rtl'; }; export declare type ListState = { value: Value; }; export declare type Value = Character[]; export declare type Character = (TextCharacter | BlockStart | BlockEnd | FragmentStart | FragmentEnd); export declare type CharacterData = { styles?: string[]; }; export declare type TextCharacter = CharacterData & { char: string; }; export declare type SelectionState = { start: number; end: number; anchorOffset: number; focusOffset: number; }; export declare type BlockStart = CharacterData & { blockKey: string; type: 'block-start'; }; export declare type BlockEnd = { type: 'block-end'; }; export declare type FragmentStart = { type: 'fragment-start'; data?: any; }; export declare type FragmentEnd = { type: 'fragment-end'; }; export declare type TextFragment = { text: string; styles?: string[]; }; export declare type Change = { start: number; end: number; value: Value; }; export declare type EditorChange = { start?: number; end?: number; value?: Value; isBoundary?: boolean; type?: string; }; export declare type Changes = Change[]; export declare type RawDocument = { text: string; ranges: RawRange[]; }; export declare type RawRange = { offset: number; length: number; styles: string[]; }; export declare type CharacterRange = RawRange; export declare type Path = number[]; export declare type ViewState = { blocks: Block[]; }; export declare type ContainerFragment = { fragments: Fragment[]; data: any; }; export declare type Fragment = ContainerFragment | TextFragment; export declare type Block = { fragments: Fragment[]; value: TextCharacter[]; blockKey: string; blockLevel: number; blocks: Block[]; styles: string[]; };