import CanvasBaseItem from '../classes/canvas/CanvasBaseItem.cjs';
import { EventIdType } from '../types/EventIdType.cjs';
import CanvasEvent from '../classes/CanvasEvent.cjs';
import 'pixi.js';
import '../interface/canvas/memory/CanvasBaseItemMemory.cjs';
import '../types/CanvasEventNamesType.cjs';

/**
 * Canvas Event Register
 */
declare const registeredEvents: {
    [name: EventIdType]: typeof CanvasEvent<CanvasEventNamesType>;
};
/**
 * Is a decorator that register a event in the game.
 * Is a required decorator for use the event in the game.
 * Thanks to this decoration the game has the possibility of updating the events to the latest modification and saving the game.
 * @param name is th identifier of the event, by default is the name of the class
 * @returns
 */
declare function eventDecorator(name?: EventIdType): (target: typeof CanvasEvent<any>) => void;
/**
 * Get an event by the id.
 * @param eventId The id of the event.
 * @returns The event type.
 */
declare function getEventTypeById<T = typeof CanvasEvent<CanvasBaseItem<any>>>(eventId: EventIdType): T | undefined;
/**
 * Get an event instance by the id.
 * @param eventId The id of the event.
 * @returns The event instance.
 */
declare function getEventInstanceById<T = CanvasEvent<CanvasBaseItem<any>>>(eventId: EventIdType): T | undefined;

export { eventDecorator as default, getEventInstanceById, getEventTypeById, registeredEvents };
