import { LogDefinitionName } from '../../resources/netlog_defs'; import { NetParams } from '../../types/net_props'; import { LooseTimelineTrigger, TimelineReplacement, TriggerAutoConfig } from '../../types/trigger'; import { RaidbossOptions } from './raidboss_options'; export type TimelineStyle = { style: { [key: string]: string; }; regex: RegExp; }; export type Event = { id: string; time: number; name: string; text: string; activeTime?: number; lineNumber?: number; duration?: number; sortKey: number; isDur?: boolean; style?: { [key: string]: string; }; sync?: Sync; }; export type Error = { lineNumber?: number; line?: string; error: string; }; export type Sync = { id: number; origInput: string | NetParams[keyof NetParams]; regexType: 'parsed' | 'net'; regex: RegExp; start: number; end: number; time: number; lineNumber: number; event: Event; jump?: number; jumpType?: 'force' | 'normal'; }; type ParsedPopupText = { type: 'info' | 'alert' | 'alarm' | 'tts'; secondsBefore?: number; text: string; }; type ParsedTriggerText = { type: 'trigger'; secondsBefore?: number; text?: string; matches: RegExpExecArray | null; trigger: LooseTimelineTrigger; }; export type ParsedText = ParsedPopupText | ParsedTriggerText; export type Text = ParsedText & { time: number; }; export declare const regexes: { comment: RegExp; commentLine: RegExp; durationCommand: RegExp; ignore: RegExp; jumpCommand: RegExp; label: RegExp; line: RegExp; popupText: RegExp; soundAlert: RegExp; speaker: RegExp; syncRegexCommand: RegExp; syncNetRegex: RegExp; tts: RegExp; windowCommand: RegExp; }; export declare class TimelineParser { protected options: RaidbossOptions; protected perTriggerAutoConfig: { [triggerId: string]: TriggerAutoConfig; }; protected replacements: TimelineReplacement[]; private timelineConfig; ignores: { [ignoreId: string]: boolean; }; events: Event[]; texts: Text[]; syncStarts: Sync[]; syncEnds: Sync[]; forceJumps: Sync[]; errors: Error[]; private labelToTime; private labelToSync; constructor(text: string, replacements: TimelineReplacement[], triggers: LooseTimelineTrigger[], styles?: TimelineStyle[], options?: RaidbossOptions, zoneId?: number, waitForParse?: boolean); protected parse(text: string, triggers: LooseTimelineTrigger[], styles: TimelineStyle[], initialId: number): void; private matchSyncNetRegex; private matchSyncRegexCommand; private buildRegexSync; private matchDurationCommand; parseType(type: LogDefinitionName, lineNumber: number): void; private GetReplacedText; private GetReplacedSync; GetMissingTranslationsToIgnore(): RegExp[]; static Translate(timeline: TimelineParser, timelineText: string, syncErrors?: { [lineNumber: number]: boolean; }, textErrors?: { [lineNumber: number]: boolean; }): string[]; } export {};