export type ResistVerdict = "immune" | "resist" | "normal" | "vulnerable"; export declare class UnknownResistanceCategoryError extends Error { readonly category: string; constructor(category: string); } export declare class UnknownResistancePropertyError extends Error { readonly category: string; readonly property: string; constructor(category: string, property: string); } export interface ResistanceMatrix { categories: Partial>>>; categoryIds?: readonly TCategory[]; propertyIds?: readonly TProperty[]; multipliers?: Partial>; default?: ResistVerdict; unknownCategory?: ResistVerdict; } export interface ResistanceResult { verdict: ResistVerdict; multiplier: number; immune: boolean; } export declare function resolveResistance(matrix: ResistanceMatrix, category: TCategory | string, targetProperties: readonly (TProperty | string)[]): ResistanceResult; export declare function resistanceScale(matrix: ResistanceMatrix, category: TCategory | string, targetProperties: readonly (TProperty | string)[]): number;