import { UPDATE_PRIORITY } from 'pixi.js';
import TickerBase from '../classes/ticker/TickerBase.cjs';
import { TickerIdType } from '../types/TickerIdType.cjs';
import TickerArgs from '../interface/TickerArgs.cjs';
import '../interface/Ticker.cjs';

/**
 * A dictionary that contains all tickers registered and avvailable to be used.
 */
declare const registeredTickers: {
    [name: TickerIdType]: typeof TickerBase;
};
/**
 * Is a decorator that register a ticker in the game.
 * Is a required decorator for use the ticker in the game.
 * Thanks to this decoration the game has the possibility of updating the tickers to the latest modification and saving the game.
 * @param name is th identifier of the label, by default is the name of the class
 * @returns
 */
declare function tickerDecorator(name?: TickerIdType): (target: typeof TickerBase<any>) => void;
/**
 * Get a ticker instance by the id.
 * @param tickerId The id of the ticker.
 * @param args The arguments that you want to pass to the ticker.
 * @param duration The duration of the ticker. If is undefined, the ticker will be called every frame.
 * @param priority The priority of the ticker. If is undefined, the priority will be UPDATE_PRIORITY.NORMAL.
 * @returns The instance of the ticker
 */
declare function getTickerInstanceById<TArgs extends TickerArgs>(tickerId: TickerIdType, args: TArgs, duration?: number, priority?: UPDATE_PRIORITY): TickerBase<TArgs> | undefined;

export { tickerDecorator as default, getTickerInstanceById, registeredTickers };
