import { Modificators, IModificator, ModificatorsNames, ModificatorInFormater, ModificatorOutFormater, ModificatorDefaultFormater } from './types'; export class ModificatorBuilder | unknown = unknown> { name: N extends ModificatorsNames ? N : ModificatorsNames; inFormater?: ModificatorInFormater; outFormater?: ModificatorOutFormater; defaultFormater?: ModificatorDefaultFormater; constructor(name: N extends ModificatorsNames ? N : ModificatorsNames) { this.name = name; } addInFormater(formater: ModificatorInFormater) { this.inFormater = formater; return this; } addOutFormater(formater: ModificatorOutFormater) { this.outFormater = formater; return this; } addDefaultFormater(formater: ModificatorDefaultFormater) { this.defaultFormater = formater; return this; } build() { return { ...this, } as IModificator; } }