import CanvasBaseItem from '../classes/canvas/CanvasBaseItem.js';
import { CanvasElementAliasType } from '../types/CanvasElementAliasType.js';
import 'pixi.js';
import '../interface/canvas/memory/CanvasBaseItemMemory.js';

/**
 * 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 canvasComponentDecorator(name?: CanvasElementAliasType): (target: typeof CanvasBaseItem<any>) => void;
declare function canvasComponentDecoratorFn(target: typeof CanvasBaseItem<any>, name?: CanvasElementAliasType): void;
declare function getCanvasElementTypeById<T extends typeof CanvasBaseItem<any>>(canvasId: CanvasElementAliasType): T | undefined;

export { canvasComponentDecoratorFn, canvasComponentDecorator as default, getCanvasElementTypeById };
