import { Font as FontDefinition } from './font';
import { ParsedFont, FontStyleType, FontWeightType, FontVariationSettingsType } from './font-interfaces';
export declare const FONTS_BASE_PATH = "/fonts";
export declare abstract class Font implements FontDefinition {
    readonly fontFamily: string;
    readonly fontSize: number;
    readonly fontVariationSettings?: Array<FontVariationSettingsType>;
    static default: any;
    readonly fontStyle: FontStyleType;
    readonly fontWeight: FontWeightType;
    readonly fontScale: number;
    get isItalic(): boolean;
    get isBold(): boolean;
    protected constructor(fontFamily: string, fontSize: number, fontStyle?: FontStyleType, fontWeight?: FontWeightType, fontScale?: number, fontVariationSettings?: Array<FontVariationSettingsType>);
    abstract getAndroidTypeface(): any;
    abstract getUIFont(defaultFont: any): any;
    abstract withFontFamily(family: string): Font;
    abstract withFontStyle(style: FontStyleType): Font;
    abstract withFontWeight(weight: FontWeightType): Font;
    abstract withFontSize(size: number): Font;
    abstract withFontScale(scale: number): Font;
    abstract withFontVariationSettings(variationSettings: FontVariationSettingsType[]): Font;
    static equals(value1: Font, value2: Font): boolean;
}
export declare namespace FontStyle {
    const NORMAL = "normal";
    const ITALIC = "italic";
    const isValid: (value: any) => value is FontStyleType;
    const parse: (value: any) => FontStyleType;
}
export declare namespace FontWeight {
    const THIN = "100";
    const EXTRA_LIGHT = "200";
    const LIGHT = "300";
    const NORMAL = "normal";
    const MEDIUM = "500";
    const SEMI_BOLD = "600";
    const BOLD = "bold";
    const EXTRA_BOLD = "800";
    const BLACK = "900";
    const isValid: (value: any) => value is FontWeightType;
    const parse: (value: any) => FontWeightType;
}
export declare namespace FontVariationSettings {
    function parse(fontVariationSettings: string): Array<FontVariationSettingsType> | null;
    function toString(fontVariationSettings: FontVariationSettingsType[] | null): string | null;
}
export declare function parseFontFamily(value: string): Array<string>;
export declare function isFontWeightBold(fontWeight: FontWeightType): boolean;
export declare namespace genericFontFamilies {
    const serif = "serif";
    const sansSerif = "sans-serif";
    const monospace = "monospace";
    const system = "system";
}
export declare function parseFont(fontValue: string): ParsedFont;
/**
 * Kind of hack.
 * Used to search font variation axis names, since iOS for some reason requires names
 * but tags are the standards.
 */
export declare function fuzzySearch(query: string, dataset: string[]): string[] | null;
