import type { TSciChart } from "../../types/TSciChart";
import type { TSciChartSurfaceCanvases } from "../../types/TSciChartSurfaceCanvases";
import type { IThemeProvider } from "../Themes/IThemeProvider";
import type { I2DSurfaceOptions } from "./I2DSurfaceOptions";
import type { TWebAssemblyChart, ISciChartSurfaceOptions } from "./SciChartSurface";
import { SciChartSurface } from "./SciChartSurface";
export type TSurfaceConstructor<T extends SciChartSurface> = (wasmContext: TSciChart, options?: ISciChartSurfaceOptions) => T;
/** @ignore */
type TSciChartMaster = {
    id: string;
    wasmContext: TSciChart;
    createChildSurface: <T extends SciChartSurface>(divElementId: string, canvases: TSciChartSurfaceCanvases, theme: IThemeProvider, surfaceConstructor: TSurfaceConstructor<T>) => T;
    getChildSurfaces: () => SciChartSurface[];
};
/** @ignore */
export declare const createMultichart: <T extends SciChartSurface>(divElement: string | HTMLDivElement, surfaceConstructor: TSurfaceConstructor<T>, options?: I2DSurfaceOptions) => Promise<TWebAssemblyChart<T>>;
export declare const getSharedWasmContext: () => Promise<TSciChart>;
export declare const initializeChartEngine2D: (options?: {
    destinationCanvas: HTMLCanvasElement;
}) => Promise<TSciChartMaster>;
/** @ignore */
export declare const disposeMultiChart: () => void;
/** @ignore */
export declare const monitorWebGL: (wasmContext: TSciChart, isMaster: boolean) => void;
export {};
