import { type TranslatableName } from '..'; import { type ContextInterface } from '../Context'; import { type SerializedSheetModifiersList } from '../Sheet/SerializedSheet/SerializedSheetInterface'; import { type SheetInterface } from '../Sheet/SheetInterface'; import type { ModifierInterface } from './ModifierInterface'; export type ModifiersListTotalCalculator = { calculate(modifiers: T[]): number; }; export type ModifiersListInterface = { modifiers: T[]; getTotal(totalCalculator: ModifiersListTotalCalculator): number; get(source: TranslatableName): ModifierInterface | undefined; add(modifier: T): number; remove(index: number): void; serialize(sheet: SheetInterface, context: ContextInterface): SerializedSheetModifiersList; };