/** Type representing a constructor function. */
export type Constructor<T> = new (...args: any[]) => T;
/**
 * Minimal interface for what a Canvas-like class must provide.
 * This allows the mixin to work with any canvas implementation (e.g., skia-canvas).
 * Uses loose typing to accommodate different canvas implementations.
 */
export interface CanvasLike {
    width: number;
    height: number;
    gpu: boolean;
    getContext(type: '2d'): unknown;
    toBuffer(format: string, options?: {
        quality?: number;
        msaa?: boolean;
    }): Promise<Uint8Array>;
    toDataURLSync?(mimeType: string): string;
}
/** Default canvas width for test/SSR rendering. */
export declare const CANVAS_WIDTH = 800;
/** Default canvas height for test/SSR rendering. */
export declare const CANVAS_HEIGHT = 600;
/** Default buffer options for consistent rendering output. */
export declare const CANVAS_TO_BUFFER_DEFAULTS: {
    quality: number;
};
/**
 * Mixin that configures a Canvas class for consistent SSR/test rendering.
 * Disables GPU acceleration and MSAA for deterministic output.
 *
 * Usage:
 * ```typescript
 * import { Canvas } from 'skia-canvas';
 * import { ConfiguredCanvasMixin } from 'ag-charts-core';
 *
 * export const ConfiguredCanvas = ConfiguredCanvasMixin(Canvas);
 * ```
 */
export declare function ConfiguredCanvasMixin<T extends Constructor<CanvasLike>>(Base: T): {
    new (...args: any[]): {
        toBuffer(format: string, options?: {
            quality?: number;
            msaa?: boolean;
        }): Promise<Uint8Array>;
        transferToImageBitmap(): CanvasLike;
        width: number;
        height: number;
        gpu: boolean;
        getContext(type: "2d"): unknown;
        toDataURLSync?(mimeType: string): string;
    };
} & T;
/**
 * Apply skia-canvas patches for consistent rendering.
 * Call once at module initialization in consuming packages.
 *
 * Patches:
 * - createConicGradient: Fixes angle offset (https://github.com/samizdatco/skia-canvas/issues/241)
 * - fillText: Uses path-based text rendering for consistent output
 *
 * Usage:
 * ```typescript
 * import * as SkiaCanvas from 'skia-canvas';
 * import { DOMMatrix } from 'skia-canvas';
 * import { applySkiaPatches } from 'ag-charts-core';
 *
 * applySkiaPatches(SkiaCanvas.CanvasRenderingContext2D, DOMMatrix);
 * ```
 */
export declare function applySkiaPatches(CanvasRenderingContext2D: any, DOMMatrix: any): void;
