import { EventEmitter } from 'eventemitter3'; import { PartialFieldMatches } from './event_emitter'; import { FfxivVersion } from './jobs'; import { Player } from './player'; type StartMap = { [s: string]: { id: string; next: StartMap; }; }; export type ComboCallback = (id: string | undefined, combo: ComboTracker) => void; /** * Track combos that the current player uses. * * Emit `combo` event for each combo/comboBreakers skill * - when cast in combo, skill => its HexID * - when cast out of combo/cast comboBreakers, skill => undefined */ export declare class ComboTracker extends EventEmitter<{ combo: ComboCallback; }> { player: Player; comboDelayMs: number; comboTimer?: number; comboBreakers: readonly string[]; startMap: StartMap; considerNext: StartMap; isFinalSkill: boolean; constructor({ comboBreakers, player, comboDelayMs }: { player: Player; comboBreakers: readonly string[]; comboDelayMs: number; }); AddCombo(skillList: string[]): void; HandleAbility(id: string, matches: PartialFieldMatches<'Ability'>): void; StateTransition(id?: string, nextState?: StartMap[string]): void; AbortCombo(id?: string): void; static setup(ffxivVersion: FfxivVersion, player: Player): ComboTracker; } export {};