import { FontFace, FontType, LocalFileName } from "@itwin/core-common";
import type { IModelJsNative } from "@bentley/imodeljs-native";
import { CreateFontFileFromRscBlobArgs, CreateFontFileFromShxBlobArgs, FontFile } from "../FontFile";
import { _faceProps, _getData, _implementationProhibited, _key } from "./Symbols";
import { IModelDb } from "../IModelDb";
declare abstract class FontFileImpl implements FontFile {
    readonly [_implementationProhibited]: undefined;
    readonly faces: ReadonlyArray<Readonly<FontFace>>;
    abstract get type(): FontType;
    get isEmbeddable(): boolean;
    readonly [_key]: string;
    readonly [_faceProps]: IModelJsNative.FontFaceProps[];
    protected constructor(faces: IModelJsNative.FontFaceProps[]);
    abstract [_getData](): Uint8Array;
}
/** Holds the binary representation of a SHX or RSC font in memory. */
export declare class CadFontFile extends FontFileImpl {
    #private;
    constructor(data: Uint8Array, type: FontType.Shx | FontType.Rsc, faces: IModelJsNative.FontFaceProps[]);
    get type(): FontType;
    [_getData](): Uint8Array;
}
/** Points to a font file in any format embedded in an iModel. */
export declare class EmbeddedFontFile extends FontFileImpl {
    #private;
    constructor(db: IModelDb, id: number, type: FontType, faces: IModelJsNative.FontFaceProps[]);
    get type(): FontType;
    [_getData](): Uint8Array;
}
export declare function shxFontFileFromBlob(args: CreateFontFileFromShxBlobArgs): FontFile;
export declare function rscFontFileFromBlob(args: CreateFontFileFromRscBlobArgs): FontFile;
export declare function trueTypeFontFileFromFileName(fileName: LocalFileName): FontFile;
export {};
//# sourceMappingURL=FontFileImpl.d.ts.map