import { ExtensionType } from '../../../extensions/Extensions';
import { BatchGeometry } from '../../batcher/gpu/BatchGeometry';
import { InstructionSet } from '../../renderers/shared/instructions/InstructionSet';
import type { System } from '../../renderers/shared/system/System';
import type { BatchableGraphics } from './BatchableGraphics';
import type { GraphicsContext } from './GraphicsContext';
export declare class GpuGraphicsContext {
    isBatchable: boolean;
    batches: BatchableGraphics[];
}
export declare class GraphicsContextRenderData {
    geometry: BatchGeometry;
    instructions: InstructionSet;
    init(): void;
}
export declare class GraphicsContextSystem implements System {
    /** @ignore */
    static extension: {
        readonly type: readonly [ExtensionType.WebGLSystem, ExtensionType.WebGPUSystem, ExtensionType.CanvasSystem];
        readonly name: "graphicsContext";
    };
    private readonly _activeBatchers;
    private _gpuContextHash;
    private _graphicsDataContextHash;
    private readonly _needsContextNeedsRebuild;
    protected prerender(): void;
    getContextRenderData(context: GraphicsContext): GraphicsContextRenderData;
    updateGpuContext(context: GraphicsContext): GpuGraphicsContext;
    getGpuContext(context: GraphicsContext): GpuGraphicsContext;
    private _returnActiveBatchers;
    private _initContextRenderData;
    private _initContext;
    protected onGraphicsContextUpdate(context: GraphicsContext): void;
    protected onGraphicsContextDestroy(context: GraphicsContext): void;
    private _cleanGraphicsContextData;
    destroy(): void;
}
