import { TriggerHelper } from '../../popup-text'; import { RaidbossOptions } from '../../raidboss_options'; import { DataType } from '../EmulatorCommon'; import EventBus from '../EventBus'; import RaidEmulatorPopupText from '../overrides/RaidEmulatorPopupText'; import RaidEmulatorWatchCombatantsOverride from '../overrides/RaidEmulatorWatchCombatantsOverride'; import Combatant from './Combatant'; import Encounter from './Encounter'; import LineEvent from './network_log_converter/LineEvent'; import PopupTextAnalysis, { LineRegExpCache, ResolverStatus } from './PopupTextAnalysis'; import RaidEmulator from './RaidEmulator'; export type PerspectiveTrigger = { triggerHelper: TriggerHelper; status: ResolverStatus; logLine: LineEvent; resolvedOffset: number; }; type Perspective = { initialData: DataType; triggers: PerspectiveTrigger[]; finalData?: DataType; }; type Perspectives = { [id: string]: Perspective; }; export default class AnalyzedEncounter extends EventBus { options: RaidbossOptions; encounter: Encounter; emulator: RaidEmulator; watchCombatantsOverride: RaidEmulatorWatchCombatantsOverride; perspectives: Perspectives; regexCache: LineRegExpCache | undefined; constructor(options: RaidbossOptions, encounter: Encounter, emulator: RaidEmulator, watchCombatantsOverride: RaidEmulatorWatchCombatantsOverride); selectPerspective(id: string, popupText: PopupTextAnalysis | RaidEmulatorPopupText): void; updateState(combatant: Combatant, timestamp: number, popupText: PopupTextAnalysis | RaidEmulatorPopupText): void; analyze(): Promise; analyzeFor(id: string): Promise; } export {};