import { BehaviorSubject } from 'rxjs';
import { SavedFormatting } from '../../state/formattings';
import { Model, type ObjApi } from '../../../../../json-crdt/model';
import type { ObjNode } from '../../../../../json-crdt/nodes';
import type { Inline } from '../../../../../json-crdt-extensions';
import type { ToolbarState } from '../../state';
export declare class FormattingManageState {
    readonly state: ToolbarState;
    readonly inline: Inline | undefined;
    readonly selected$: BehaviorSubject<SavedFormatting<ObjNode<Record<string, import("../../../../../json-crdt/nodes").JsonNode<unknown>>>> | null>;
    readonly view$: BehaviorSubject<"view" | "edit">;
    readonly editing$: BehaviorSubject<SavedShadowFormatting<ObjNode<Record<string, import("../../../../../json-crdt/nodes").JsonNode<unknown>>>> | undefined>;
    constructor(state: ToolbarState, inline: Inline | undefined);
    getFormattings$(inline?: Inline | undefined): BehaviorSubject<SavedFormatting[]>;
    readonly select: (formatting: SavedFormatting | null) => void;
    readonly switchToViewPanel: () => void;
    readonly switchToEditPanel: () => void;
    readonly returnFromEditPanelAndSave: () => void;
}
export declare class SavedShadowFormatting<Node extends ObjNode = ObjNode> extends SavedFormatting<Node> {
    readonly saved: SavedFormatting<Node>;
    protected _model: Model<any>;
    constructor(saved: SavedFormatting<Node>);
    conf(): ObjApi<Node> | undefined;
}
