import { DeletableEntity } from "../../../Core/DeletableEntity";
import type { IDeletable } from "../../../Core/IDeletable";
import type { SCRTColorTextureVertex, SCRTColorVertex, SCRTFontKey, SCRTRectVertex, TSciChart, TSRTextBounds, TSRVector4, TSRVector2, VectorArcVertex, VectorColorTextureVertex, VectorColorVertex, VectorRectVertex, SCRTArcVertex, TSRVector3, SCRTArcParams } from "../../../types/TSciChart";
import type { TSciChart3D } from "../../../types/TSciChart3D";
import type { TTextStyle } from "../Axis/AxisCore";
export declare class FontKey extends DeletableEntity implements IDeletable {
    readonly firstLoadTime: number;
    readonly nativeKey: SCRTFontKey;
    constructor(nativeKey: SCRTFontKey);
    delete(): void;
}
export declare const deleteCache: (wasmContext: TSciChart | TSciChart3D) => void;
export declare const freeCache: (wasmContext: TSciChart) => IDeletable;
/**
 * Returns an empty vector of Rectangles
 * @param wasmContext
 * @param maxSize
 * @returns
 */
export declare const getVectorRectVertex: (wasmContext: TSciChart, maxSize?: number) => VectorRectVertex;
export declare const getVectorColorVertex: (wasmContext: TSciChart, maxSize?: number) => VectorColorVertex;
export declare const getVectorColorTextureVertex: (wasmContext: TSciChart, maxSize?: number) => VectorColorTextureVertex;
export declare const getVectorArcVertex: (wasmContext: TSciChart, maxSize?: number) => VectorArcVertex;
export declare const getVertex: (wasmContext: TSciChart, x: number, y: number, colour?: number) => SCRTColorVertex;
export declare const getArcVertex: (wasmContext: TSciChart) => SCRTArcVertex;
export declare const getArcParams: (wasmContext: TSciChart, centerX: number, centerY: number, startAngle: number, endAngle: number, radius: number, innerRadius: number, isGridLineMode: number, aspectRatio: number, lineThickness: number) => SCRTArcParams;
export declare const getTextureVertex: (wasmContext: TSciChart, x: number, y: number, colour?: number, xTexCoord?: number, yTexCoord?: number) => SCRTColorTextureVertex;
export declare const getTextBounds: (wasmContext: TSciChart | TSciChart3D) => TSRTextBounds;
export declare const getNativeRect: (wasmContext: TSciChart, xTopLeft: number, yTopLeft: number, xBottomRight: number, yBottomRight: number) => SCRTRectVertex;
export declare const getVector4: (wasmContext: TSciChart | TSciChart3D, x: number, y: number, z: number, w: number) => TSRVector4;
export declare const getVector2: (wasmContext: TSciChart | TSciChart3D, x?: number, y?: number) => TSRVector2;
export declare const getVector3: (wasmContext: TSciChart | TSciChart3D, x: number, y: number, z: number) => TSRVector3;
/**
 * get a fontKey required to aquire a native font
 * @param webAssemblyContext
 * @param labelStyle
 * @param transformed set true to get an alternative instance of the font which can be used multiple times while transformations are in effect,
 * without disrupting global font rendering
 * @returns
 */
export declare const getFontKey: (webAssemblyContext: TSciChart | TSciChart3D, labelStyle: TTextStyle, advanced?: boolean, transformed?: boolean) => SCRTFontKey;
export declare const getAllFontKeys: (webAssemblyContext: TSciChart | TSciChart3D) => SCRTFontKey[];
/**
 * Get a font key configured for Slug (GPU Bezier) text rendering.
 * Slug fonts render text by evaluating quadratic Bezier curves directly in the fragment shader,
 * producing mathematically exact glyphs at any scale or rotation.
 */
export declare const getSlugFontKey: (webAssemblyContext: TSciChart | TSciChart3D, labelStyle: TTextStyle) => SCRTFontKey;
