import Signal from "../../events/signal/Signal";
import LinearModifier from "./LinearModifier";

export default class Stat extends Number {
    constructor(base_value: number)

    public readonly onModifierAdded: Signal<LinearModifier>
    public readonly onModifierRemoved: Signal<LinearModifier>
    public readonly onChanged: Signal<number, number>

    getValue(): number

    getBaseValue(): number

    setBaseValue(v: number): void

    addModifier(mod: LinearModifier): void

    removeModifier(mod: LinearModifier): boolean

    equals(other: Stat): boolean

    copy(other: Stat): void

    toJSON(): any

    fromJSON(json: any): void

}
