export interface ICustomFontFace {
    name: string;
    url: string;
}
export interface ILineLengthsConfig {
    optimalChars: number;
    minChars?: number | null;
    maxChars?: number | null;
    baseFontSize?: number | null;
    sample?: string | null;
    padding?: number | null;
    fontFace?: string | ICustomFontFace | null;
    letterSpacing?: number | null;
    wordSpacing?: number | null;
    isCJK?: boolean | null;
    getRelative?: boolean | null;
}
export interface ILineLengths {
    min: number | null;
    max: number | null;
    optimal: number;
    baseFontSize: number;
}
export declare class LineLengths {
    private _canvas;
    private _optimalChars;
    private _minChars?;
    private _maxChars?;
    private _baseFontSize;
    private _fontFace;
    private _sample;
    private _padding;
    private _letterSpacing;
    private _wordSpacing;
    private _isCJK;
    private _getRelative;
    private _minDivider;
    private _maxMultiplier;
    private _approximatedWordSpaces;
    private _optimalLineLength;
    constructor(config: ILineLengthsConfig);
    private updateMultipliers;
    update(props: Partial<ILineLengthsConfig>): void;
    get baseFontSize(): number;
    get minimalLineLength(): number | null;
    get maximalLineLength(): number | null;
    get optimalLineLength(): number;
    get all(): ILineLengths;
    private static approximateWordSpaces;
    private getLineLengthFallback;
    private getOptimalLineLength;
    private measureText;
}
