import { Lang } from '../../resources/languages'; import PartyTracker from '../../resources/party'; import { PlayerChangedDetail } from '../../resources/player_override'; import { ConfigValue } from '../../resources/user_config'; import { RaidbossData } from '../../types/data'; import { EventResponses, LogEvent } from '../../types/event'; import { Job, Role } from '../../types/job'; import { Matches } from '../../types/net_matches'; import { DataInitializeFunc, GeneralNetRegexTrigger, LooseTrigger, LooseTriggerSet, Output, PartialTriggerOutput, RaidbossFileData, RegexTrigger, ResponseOutput, TriggerAutoConfig, TriggerField, TriggerOutput, TriggerSetAutoConfig } from '../../types/trigger'; import BrowserTTSEngine from './browser_tts_engine'; import { PerTriggerOption, RaidbossOptions } from './raidboss_options'; import { TimelineLoader } from './timeline'; export declare const isNetRegexTrigger: (trigger?: ProcessedTrigger) => trigger is GeneralNetRegexTrigger & Partial, "netRegex"> & import("../../types/trigger").PartialRegexTrigger & { netRegex: import("../../types/net_trigger").CactbotBaseRegExp<"None"> | Partial & { timestamp: string; capture: boolean; }>; }> & { filename?: string | undefined; localRegex?: RegExp | undefined; localNetRegex?: RegExp | undefined; output?: Output | undefined; triggerSetAutoConfig?: Readonly | undefined; }; type PartialExcept = Partial> & Pick; type RegexProcessedTrigger = PartialExcept & ProcessedTrigger, 'regex'>; export declare const isRegexTrigger: (trigger?: ProcessedTrigger) => trigger is RegexProcessedTrigger; export type ProcessedTrigger = LooseTrigger & { filename?: string; localRegex?: RegExp; localNetRegex?: RegExp; output?: Output; triggerSetAutoConfig?: Readonly; }; type ProcessedTimelineTrigger = ProcessedTrigger & { isTimelineTrigger?: true; }; type ProcessedTriggerSet = LooseTriggerSet & { filename?: string; timelineTriggers?: ProcessedTimelineTrigger[]; triggers?: ProcessedTrigger[]; }; declare const texts: readonly ["info", "alert", "alarm"]; export type Text = typeof texts[number]; export type TextText = `${Text}Text`; export type RaidbossTriggerField = TriggerField> | TriggerField>; export type RaidbossTriggerOutput = TriggerOutput | PartialTriggerOutput; export interface TriggerHelper { valueOrFunction: (f: RaidbossTriggerField) => RaidbossTriggerOutput; trigger: ProcessedTrigger; now: number; triggerOptions: PerTriggerOption; triggerAutoConfig: TriggerAutoConfig; userSuppressedOutput: boolean; matches: Matches; response?: ResponseOutput; soundUrl?: string; soundVol?: number; triggerSoundVol?: number; defaultTTSText?: string; textAlertsEnabled: boolean; soundAlertsEnabled: boolean; spokenAlertsEnabled: boolean; groupSpokenAlertsEnabled: boolean; duration?: { fromConfig?: number; fromTrigger?: number; alarmText: number; alertText: number; infoText: number; }; adjustedDelay?: number; countdown?: number; ttsText?: string; rumbleDurationMs?: number; rumbleWeak?: number; rumbleStrong?: number; output: Output; } export declare class PopupText { protected options: RaidbossOptions; protected timelineLoader: TimelineLoader; protected raidbossDataFiles: RaidbossFileData; protected triggers: ProcessedTrigger[]; protected netTriggers: ProcessedTrigger[]; protected timers: { [triggerId: number]: number; }; protected triggerSuppress: { [triggerId: string]: number; }; protected currentTriggerID: number; protected inCombat: boolean; protected resetWhenOutOfCombat: boolean; protected infoText: HTMLElement | null; protected alertText: HTMLElement | null; protected alarmText: HTMLElement | null; protected parserLang: Lang; protected displayLang: Lang; protected ttsEngine?: BrowserTTSEngine; protected ttsSay: (text: string) => void; protected partyTracker: PartyTracker; protected readonly kMaxRowsOfText = 2; protected data: RaidbossData; protected me: string; protected job: Job; protected role: Role; protected triggerSets: ProcessedTriggerSet[]; protected triggerSetsById: { [id: string]: ProcessedTriggerSet; }; protected triggerSetConfig: { [key: string]: ConfigValue; }; protected zoneName: string; protected zoneId: number; protected dataInitializers: { file: string; func: DataInitializeFunc; }[]; constructor(options: RaidbossOptions, timelineLoader: TimelineLoader, raidbossDataFiles: RaidbossFileData); AddDebugInstructions(): void; HookOverlays(): void; OnPlayerChange(e: PlayerChangedDetail): void; ProcessDataFiles(files: RaidbossFileData): void; OnChangeZone(e: EventResponses['ChangeZone']): void; ReloadTimelines(): void; ProcessTrigger(trigger: ProcessedTrigger | ProcessedTimelineTrigger): void; OnJobChange(e: PlayerChangedDetail): void; SetInCombat(inCombat: boolean): void; Reset(): void; StopTimers(): void; OnLog(e: LogEvent): void; OnNetLog(e: EventResponses['LogLine']): void; OnTrigger(trigger: ProcessedTrigger, matches: RegExpExecArray | null, currentTime: number): void; OnTriggerInternal(trigger: ProcessedTrigger, matches: RegExpExecArray | null, currentTime: number): void; _onTriggerInternalGetHelper(trigger: ProcessedTrigger, matches: Matches, now: number): TriggerHelper; _onTriggerInternalCheckSuppressed(trigger: ProcessedTrigger, when: number): boolean; _onTriggerInternalCondition(triggerHelper: TriggerHelper): boolean; _onTriggerInternalHelperDefaults(triggerHelper: TriggerHelper): void; _onTriggerInternalPreRun(triggerHelper: TriggerHelper): void; _onTriggerInternalDelaySeconds(triggerHelper: TriggerHelper): Promise | undefined; _onTriggerInternalDurationSeconds(triggerHelper: TriggerHelper): void; _onTriggerInternalSuppressSeconds(triggerHelper: TriggerHelper): void; _onTriggerInternalCountdownSeconds(triggerHelper: TriggerHelper): void; _onTriggerInternalPromise(triggerHelper: TriggerHelper): Promise | undefined; _onTriggerInternalSound(triggerHelper: TriggerHelper): void; _onTriggerInternalSoundVolume(triggerHelper: TriggerHelper): void; _onTriggerInternalResponse(triggerHelper: TriggerHelper): void; _onTriggerInternalAlarmText(triggerHelper: TriggerHelper): void; _onTriggerInternalAlertText(triggerHelper: TriggerHelper): void; _onTriggerInternalInfoText(triggerHelper: TriggerHelper): void; _onTriggerInternalRumble(triggerHelper: TriggerHelper): void; _onTriggerInternalTTS(triggerHelper: TriggerHelper): void; _onTriggerInternalPlayAudio(triggerHelper: TriggerHelper): void; _onTriggerInternalRun(triggerHelper: TriggerHelper): void; _createTextFor(triggerHelper: TriggerHelper, text: string, textType: Text, lowerTextKey: TextText, duration: number): void; _addTextFor(textType: Text, triggerHelper: TriggerHelper): void; _makeTextElement(_triggerHelper: TriggerHelper, text: string, className: string): HTMLElement; _updateCountdownInternal(span: HTMLElement, endTime: number): void; _playAudioFile(_triggerHelper: TriggerHelper, url: string, volume?: number): void; getDataObject(): RaidbossData; } export declare class PopupTextGenerator { private popupText; constructor(popupText: PopupText); Info(text: string, currentTime: number): void; Alert(text: string, currentTime: number): void; Alarm(text: string, currentTime: number): void; TTS(text: string, currentTime: number): void; Trigger(trigger: ProcessedTrigger, matches: RegExpExecArray | null, currentTime: number): void; } export {};