import { EventResponses, LogEvent } from '../../types/event'; import { LooseTimelineTrigger, RaidbossFileData, TimelineReplacement } from '../../types/trigger'; import { PopupTextGenerator } from './popup-text'; import { RaidbossOptions } from './raidboss_options'; import { Event, Sync, Text, TimelineStyle } from './timeline_parser'; export declare class TimelineUI { protected timeline: Timeline | null; protected Init(): void; protected AddDebugInstructions(): void; SetPopupTextInterface(_popupText: PopupTextGenerator): void; protected Reset(): void; SetTimeline(timeline: Timeline | null): void; OnAddTimer(_fightNow: number, _e: Event, _channeling: boolean): void; OnRemoveTimer(_e: Event, _force?: 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; OnSyncTime(_fightNow: number, _running: boolean): void; } export declare class Timeline { private options; private zoneId; private replacements; private activeText; protected activeSyncs: Sync[]; protected activeNetSyncs: Sync[]; private activeEvents; private keepAliveEvents; private activeLastForceJumpSync?; ignores: { [ignoreId: string]: boolean; }; events: Event[]; texts: Text[]; syncStarts: Sync[]; syncEnds: Sync[]; forceJumps: Sync[]; timebase: number; private nextEventState; private nextText; private nextSyncStart; private nextSyncEnd; private nextForceJump; private updateTimer; ui?: TimelineUI; constructor(text: string, replacements: TimelineReplacement[], triggers: LooseTimelineTrigger[], styles: TimelineStyle[], options: RaidbossOptions, zoneId: number); private LoadFile; Stop(): void; protected SyncTo(fightNow: number, currentTime: number, _sync?: Sync): void; private _CollectActiveSyncs; OnLogLineJump(sync: Sync, currentTime: number): void; OnLogLine(line: string, currentTime: number): void; OnNetLogLine(line: string, currentTime: number): void; private _AdvanceTimeTo; private _ClearTimers; private _ClearExceptRunningDurationTimers; private _RemoveExpiredTimers; private _AddDurationTimers; private _AddUpcomingTimers; private _AddPassedTexts; private _CancelUpdate; protected _ScheduleUpdate(fightNow: number): void; _OnUpdateTimer(currentTime: number): void; _CheckUnconditionalJump(fightNow: number): Sync | undefined; } export declare class TimelineController { protected options: RaidbossOptions; protected ui: TimelineUI; protected timelines: { [filename: string]: string; }; private suppressNextEngage; private wipeRegex; protected activeTimeline: Timeline | null; constructor(options: RaidbossOptions, ui: TimelineUI, raidbossDataFiles: RaidbossFileData); SetPopupTextInterface(popupText: PopupTextGenerator): void; SetInCombat(inCombat: boolean): void; OnLogEvent(e: LogEvent): void; OnNetLog(e: EventResponses['LogLine']): void; SetActiveTimeline(timelineFiles: string[], timelines: string[], replacements: TimelineReplacement[], triggers: LooseTimelineTrigger[], styles: TimelineStyle[], zoneId: number): void; IsReady(): boolean; } export declare class TimelineLoader { private timelineController; constructor(timelineController: TimelineController); SetTimelines(timelineFiles: string[], timelines: string[], replacements: TimelineReplacement[], triggers: LooseTimelineTrigger[], styles: TimelineStyle[], zoneId: number): void; IsReady(): boolean; StopCombat(): void; }