import { Job } from '../../../../../types/job'; import { LineEvent0x03 } from './LineEvent0x03'; import { LineEvent0x105 } from './LineEvent0x105'; import { LineEvent0x107 } from './LineEvent0x107'; import { LineEvent0x108 } from './LineEvent0x108'; import { LineEvent0x10A } from './LineEvent0x10A'; import { LineEvent0x10B } from './LineEvent0x10B'; import { LineEvent0x10E } from './LineEvent0x10E'; import { LineEvent0x10F } from './LineEvent0x10F'; import { LineEvent0x110 } from './LineEvent0x110'; import { LineEvent0x111 } from './LineEvent0x111'; import { LineEvent0x112 } from './LineEvent0x112'; import LogRepository from './LogRepository'; /** * Generic class to track an FFXIV log line */ export default class LineEvent { networkLine: string; offset: number; convertedLine: string; invalid: boolean; index: number; readonly decEventStr: string; readonly decEvent: number; readonly hexEvent: string; readonly timestamp: number; readonly checksum: string; readonly tzOffsetMillis: number; constructor(repo: LogRepository, networkLine: string, parts: string[]); prefix(): string; static isDamageHallowed(damage: string): boolean; static isDamageBig(damage: string): boolean; static calculateDamage(damage: string): number; } export interface LineEventSource extends LineEvent { readonly isSource: true; readonly id: string; readonly name: string; readonly x?: number; readonly y?: number; readonly z?: number; readonly heading?: number; readonly targetable?: boolean; readonly hp?: number; readonly maxHp?: number; readonly mp?: number; readonly maxMp?: number; } export declare const isLineEventSource: (line: LineEvent) => line is LineEventSource; export interface LineEventTarget extends LineEvent { readonly isTarget: true; readonly targetId: string; readonly targetName: string; readonly targetX?: number; readonly targetY?: number; readonly targetZ?: number; readonly targetHeading?: number; readonly targetHp?: number; readonly targetMaxHp?: number; readonly targetMp?: number; readonly targetMaxMp?: number; } export declare const isLineEventTarget: (line: LineEvent) => line is LineEventTarget; export interface LineEventJobLevel extends LineEvent { readonly isJobLevel: true; readonly job: Job; readonly jobId: number; readonly level: number; } export declare const isLineEventJobLevel: (line: LineEvent) => line is LineEventJobLevel; export interface LineEventAbility extends LineEvent { readonly isAbility: true; readonly abilityId: number; readonly abilityName: string; } export declare const isLineEventAbility: (line: LineEvent) => line is LineEventAbility; export declare const isLineEvent0x03: (line: LineEvent) => line is LineEvent0x03; export declare const isLineEvent0x105: (event: LineEvent) => event is LineEvent0x105; export declare const isLineEvent0x107: (event: LineEvent) => event is LineEvent0x107; export declare const isLineEvent0x108: (event: LineEvent) => event is LineEvent0x108; export declare const isLineEvent0x10A: (event: LineEvent) => event is LineEvent0x10A; export declare const isLineEvent0x10B: (event: LineEvent) => event is LineEvent0x10B; export declare const isLineEvent0x10E: (event: LineEvent) => event is LineEvent0x10E; export declare const isLineEvent0x10F: (event: LineEvent) => event is LineEvent0x10F; export declare const isLineEvent0x110: (event: LineEvent) => event is LineEvent0x110; export declare const isLineEvent0x111: (event: LineEvent) => event is LineEvent0x111; export declare const isLineEvent0x112: (event: LineEvent) => event is LineEvent0x112;