import { Size } from '@devexpress/utils/lib/geometry/size';
import { ICloneable } from '@devexpress/utils/lib/types';
import { IHashBasedCacheType } from '../caches/hash-based-cache';
import { ColorModelInfo } from '../color/color-model-info';
import { ColorProvider } from '../color/color-provider';
import { DocumentModel } from '../document-model';
import { FontInfo } from '../fonts/font-info';
import { IMaskedProperties } from '../interfaces';
import { ShadingInfo } from '../shadings/shading-info';
import { ICharacterPropertyDescriptor } from './character-property-descriptor';
import { CompositeFontInfo } from './composite-font-info';
import { CharacterFormattingScript, CharacterPropertiesMask, StrikeoutType, UnderlineType } from './enums';
import { LangInfo } from './lang-info';
import { LayoutCharacterPropertiesColorInfo } from './layout-character-properties-color-info';
export declare class CharacterProperties implements ICloneable<CharacterProperties>, IHashBasedCacheType<CharacterProperties> {
    private hash;
    private measurerSizes;
    fontSize: number;
    fontBold: boolean;
    fontItalic: boolean;
    fontInfo: FontInfo;
    script: CharacterFormattingScript;
    fontStrikeoutType: StrikeoutType;
    fontUnderlineType: UnderlineType;
    allCaps: boolean;
    smallCaps: boolean;
    underlineWordsOnly: boolean;
    strikeoutWordsOnly: boolean;
    noProof: boolean;
    hidden: boolean;
    langInfo: LangInfo;
    compositeFontInfo: CompositeFontInfo;
    textColor: ColorModelInfo;
    shadingInfo: ShadingInfo;
    highlightColor: ColorModelInfo;
    strikeoutColor: ColorModelInfo;
    underlineColor: ColorModelInfo;
    protected calculateHash(): number;
    getHashCode(): number;
    equals(obj: CharacterProperties): boolean;
    clone(): CharacterProperties;
    copyFrom(obj: CharacterProperties): void;
    getSize(text: string): Size;
    setSize(text: string, size: Size): void;
    clearSizes(): void;
    linkMeasurerSizes(obj: CharacterProperties): void;
    getLayoutColorInfo(colorProvider: ColorProvider): LayoutCharacterPropertiesColorInfo;
    static getActualBackgroundColor(charProps: CharacterProperties, colorProvider: ColorProvider): number;
}
export declare class MaskedCharacterProperties extends CharacterProperties implements IMaskedProperties<CharacterPropertiesMask>, IHashBasedCacheType<MaskedCharacterProperties> {
    private static denominator;
    private useValue;
    private useValueExt;
    protected calculateHash(): number;
    getUseValue(value: CharacterPropertiesMask): boolean;
    setUseValue(mask: CharacterPropertiesMask, value: boolean): void;
    setUseValueFull(value: number, onlyForDefault?: boolean): void;
    getLowPartUseValue(value: number): number;
    getHighPartUseValue(value: number): number;
    getUseValueFull(): number;
    resetAllUse(): void;
    setAllUse(): void;
    clone(): MaskedCharacterProperties;
    copyFrom(obj: any): void;
    equals(obj: MaskedCharacterProperties): boolean;
    static createDefault(model: DocumentModel): MaskedCharacterProperties;
    setValue<T>(desc: ICharacterPropertyDescriptor<T>, value: T): void;
}
