import CanvasBase from '../classes/canvas/CanvasBase.js';
import { CanvasElementTagType } from '../types/CanvasElementTagType.js';
import 'pixi.js';
import '../interface/canvas/ICanvasBaseMemory.js';

declare const registeredCanvasElement: {
    [name: CanvasElementTagType]: typeof CanvasBase<any>;
};
/**
 * Is a decorator that register a canvas element in the game.
 * @param name Name of the canvas element, by default it will use the class name. If the name is already registered, it will show a warning
 * @returns
 */
declare function canvasElementDecorator(name?: CanvasElementTagType): (target: typeof CanvasBase<any>) => void;
declare function getCanvasElementTypeById<T extends typeof CanvasBase<any>>(canvasId: CanvasElementTagType): T | undefined;
declare function getCanvasElementInstanceById<T extends CanvasBase<any>>(canvasId: CanvasElementTagType): T | undefined;

export { canvasElementDecorator as default, getCanvasElementInstanceById, getCanvasElementTypeById, registeredCanvasElement };
