import { LooseTimelineTrigger } from '../../../../types/trigger'; import { PopupText } from '../../popup-text'; import { RaidbossOptions } from '../../raidboss_options'; import { TimelineUI } from '../../timeline'; import { Event } from '../../timeline_parser'; import RaidEmulator from '../data/RaidEmulator'; export interface EmulatorTimerBar { $progress: HTMLElement; $bar: HTMLDivElement; $leftLabel: HTMLElement; $rightLabel: HTMLElement; start: number; style: 'fill' | 'empty'; duration: number; event: Event; forceRemoveAt: number; } export default class RaidEmulatorTimelineUI extends TimelineUI { protected options: RaidbossOptions; emulatedTimerBars: EmulatorTimerBar[]; emulatedStatus: string; $barContainer: HTMLElement; $progressTemplate: HTMLElement; popupText?: PopupText; constructor(options: RaidbossOptions); bindTo(emulator: RaidEmulator): void; stop(): void; updateBar(bar: EmulatorTimerBar, currentLogTime: number): void; setPopupText(popupText: PopupText): void; Init(): void; AddDebugInstructions(): void; OnAddTimer(fightNow: number, e: Event, channeling: boolean): void; OnRemoveTimer(e: Event, expired: boolean): void; OnShowInfoText(text: string, currentTime: number): void; OnShowAlertText(text: string, currentTime: number): void; OnShowAlarmText(text: string, currentTime: number): void; OnSpeakTTS(text: string, currentTime: number): void; OnTrigger(trigger: LooseTimelineTrigger, matches: RegExpExecArray | null, currentTime: number): void; }