import type { ReactElement } from 'react';
import type { Decoration, Node, DocumentStyle as RichContentDocumentStyle, TextNodeStyle } from '@wix/ricos/schema';
import { Decoration_Type } from '@wix/ricos/schema';
import type { HeadingNode, ParagraphNode } from '../../ricos-types/index.js';
import type { TextDecoration } from '../models/decoration.js';
import type { TextBlockNodeType } from '../models/styles.js';
import { RicosNodeStyle } from './node-style.js';
import { RicosTextStyle } from './text-style.js';
/**
 * Represents Document Style
 */
export declare class RicosDocumentStyle {
    documentStyle: RichContentDocumentStyle;
    constructor(documentStyle: RichContentDocumentStyle);
    static fromNode(node: ParagraphNode | HeadingNode): RicosDocumentStyle;
    static isNodeTransformable(node: Node): node is ParagraphNode | HeadingNode;
    /**
     * Extracts given decoration settings for specific node type from the current Document Style.
     */
    getDecoration(nodeType: TextBlockNodeType, decorationType: Decoration_Type): TextDecoration;
    getDecorations(node: ParagraphNode | HeadingNode): Decoration[];
    getTextStyle(nodeType: TextBlockNodeType): RicosTextStyle;
    getNodeStyle(nodeType: TextBlockNodeType): RicosNodeStyle;
    /**
     * Translates DocumentStyle to HTML style tag with CSS variable definitions
     */
    toStyleTag(): ReactElement;
    /**
     * Translates DocumentStyle entity to RichContent compatible DocumentStyle object
     */
    toContent(): RichContentDocumentStyle;
    /**
     * DocumentStyle modification
     */
    setStyle(nodeType: TextBlockNodeType, textNodeStyle: TextNodeStyle): RicosDocumentStyle;
    resetStyle(nodeType: TextBlockNodeType): RicosDocumentStyle;
    /**
     * DocumentStyle modification
     */
    mergeWith(documentStyle: RichContentDocumentStyle): RicosDocumentStyle;
}
//# sourceMappingURL=document-style.d.ts.map