import {ConfigurationModel} from "../Database/Models/ConfigurationModel"; import {Model} from "../Database/Models/Model"; import {ValueOf} from "../types/Class"; import {Nullable} from "../types/Nullable"; import {ConfigurationTransformer} from "./ConfigurationTransformer"; export interface ConfigurationProvider< TProviderModel extends ConfigurationModel = ConfigurationModel, TRuntimeConfiguration extends object = object > { get(path: string): Nullable; getAll(): TProviderModel[]; get defaults(): TRuntimeConfiguration; save(value: Omit & Partial): void; getTransformer(): ConfigurationTransformer; }