import { TickerCallback, UPDATE_PRIORITY } from 'pixi.js';
import { TickerIdType } from '../types/TickerIdType.js';
import TickerArgs from './TickerArgs.js';

/**
 * TickerHistory is a class that contains the name of a class and the arguments that were used to create it.
 */
interface TickerHistory<TArgs extends TickerArgs> {
    fn: TickerCallback<any>;
    id: TickerIdType;
    args: TArgs;
    /**
     * The aliases of the canvas elements that are connected to this ticker
     */
    canvasElementAliases: string[];
    priority?: UPDATE_PRIORITY;
    duration?: number;
    /**
     * If this ticker was created by steps
     */
    createdByTicketSteps?: {
        canvasElementAlias: string;
        id: string;
    };
    onEndOfTicker: () => void;
}
interface TickerHistoryForExport<TArgs extends TickerArgs> {
    id: TickerIdType;
    args: TArgs;
    /**
     * The aliases of the canvas elements that are connected to this ticker
     */
    canvasElementAliases: string[];
    priority?: UPDATE_PRIORITY;
    duration?: number;
}

export type { TickerHistoryForExport, TickerHistory as default };
