import { DocumentModel } from '../../../model/document-model';
import { Pair } from '@devexpress/utils/lib/class/pair';
import { FixedInterval } from '@devexpress/utils/lib/intervals/fixed';
import { RichEditCore } from '../../../rich-edit-core';
import { BaseElement, DivElement } from './elements';
import { ShortString } from './short-string';
export declare abstract class BaseFormatter<T> {
    static stringColor: string;
    static paramNameColor: string;
    static valueColor: string;
    static blackColor: string;
    static rich: RichEditCore;
    protected curr: T;
    static formattersList: BaseFormatter<any>[];
    protected static addToFormattersList(formatter: BaseFormatter<any>): void;
    protected abstract isHandleObject(obj: any): boolean;
    protected abstract getShortDescription(_config: Config): BaseElement;
    protected availableFullDescription(_config: Config): boolean;
    protected getFullDescription(_config: Config): BaseElement;
    header(obj: any, config: Config): any[];
    hasBody(obj: any, config: Config): boolean;
    body(obj: any, config: Config): any[];
    protected toFixed(val: number, numDigitsAfterPoint?: number): string;
    protected stdShow(props: StdProps): DivElement;
    protected mapNumberAsKeyToListOfPairs<T>(map: Record<number, T>, getSortVal: (key: number, obj: T) => number, makePair: (key: number, obj: T) => Pair<string, any>): Pair<string, any>[];
    protected static getColorBoxNode(color: number): DivElement;
    protected getPictureNode(_picId: number, _obj: {
        width: number;
        height: number;
    }): DivElement;
    protected makeTableCellNode<T>(propName: string, val: T): BaseElement;
    protected get handlerURI(): string;
    protected get model(): DocumentModel;
    protected getSubDocumentText(subDocId: number, interval?: FixedInterval): ShortString;
    protected getRawText(text: string): ShortString;
}
export declare class StdProps {
    static STD_NUM_ELEMENTS: number;
    _onLine: boolean;
    _numElements: number;
    _list: Pair<string, any>[];
    _openChar: string;
    _closeChar: string;
    constructor(list: Pair<string, any>[]);
    setNumElements(val: number): this;
    setStdNumElements(): this;
    showAsLine(): this;
    showAsColumn(): this;
    setBoundChars(openChar: string, closeChar: string): this;
    isShowNotAllElements(): boolean;
}
export declare class Config {
    private aspxRichEditConfig_useCustomFormatter;
    private getProp;
    get useCustomFormatter(): boolean;
    set useCustomFormatter(val: boolean);
    static useCustomFormatter(val: boolean, config?: Config): Config;
}
