import { MergedStatMapping } from '../../constants/content/data/data-character-stats-mapping'; import { Entity } from '../entity'; import { MinMax } from '../minmax'; import { EffectValueSynergy } from './effect-value'; export declare enum ResolveDataType { Synergy = 0, ExternalSynergy = 1 } export interface SynergyResolveData { type: ResolveDataType.Synergy; effect: EffectValueSynergy; originalValue: number | MinMax; objectSource: Entity; statsItWillUpdate: Array<{ stat: string; mapping?: MergedStatMapping; }>; } export interface ExternalSynergyResolveData { type: ResolveDataType.ExternalSynergy; stat: string; sources: Array; value: number | MinMax; objectSource: Entity; precision: number | null; method: ((...values: Array) => number | MinMax); statsItWillUpdate: Array<{ stat: string; mapping?: MergedStatMapping; }>; } export interface MergedStat { stat: string; total: T; totalDisplayed: T; allowMinMax: boolean; readonly: boolean; precision: number; displayPrecision?: number; suffix: 's' | '%' | ''; maximum?: number; values: { flat: Array<{ value: number | MinMax; extra: boolean; source: Entity; }>; max: Array<{ value: number; extra: boolean; source: Entity; }>; percent: Array<{ value: number; extra: boolean; source: Entity; }>; maxPercent: Array<{ value: number; extra: boolean; source: Entity; }>; multiplier: Array<{ value: number; extra: boolean; source: Entity; }>; maxMultiplier: Array<{ value: number; extra: boolean; source: Entity; }>; }; }