import { BasePrepare } from 'pixijs/prepare';
import type { ExtensionMetadata, ICanvas, ICanvasRenderingContext2D, ISystem } from 'pixijs/core';
import type { CanvasRenderer } from 'pixijs/renderer/canvas';
/**
 * The prepare manager provides functionality to upload content to the GPU.
 *
 * This cannot be done directly for Canvas like in WebGL, but the effect can be achieved by drawing
 * textures to an offline canvas. This draw call will force the texture to be moved onto the GPU.
 *
 * An instance of this class is automatically created by default, and can be found at `renderer.plugins.prepare`
 * @class
 * @extends PIXI.BasePrepare
 * @memberof PIXI
 */
export declare class CanvasPrepare extends BasePrepare implements ISystem {
    /** @ignore */
    static extension: ExtensionMetadata;
    /**
     * An offline canvas to render textures to
     * @internal
     */
    canvas: ICanvas;
    /**
     * The context to the canvas
     * @internal
     */
    ctx: ICanvasRenderingContext2D;
    /**
     * @param renderer - A reference to the current renderer
     */
    constructor(renderer: CanvasRenderer);
    /** Destroys the plugin, don't use after this */
    destroy(): void;
}
