import { OptionLoader, loadOptions } from "./OptionLoader.js";
import type { IOptionLoader } from "../Options/Interfaces/IOptionLoader.js";
import type { RangeValue } from "../Types/RangeValue.js";
import type { RecursivePartial } from "../Types/RecursivePartial.js";
export { OptionLoader, loadOptions };
export declare function loadProperty<T extends object, K extends keyof T>(obj: T, key: K, value: T[K] | undefined): void;
export declare function loadRangeProperty<T extends object>(obj: T, key: keyof T, value: RangeValue | undefined): void;
export declare function loadNestedProperty(obj: object, key: string, value: RecursivePartial<unknown> | undefined): void;
export declare function loadLazyProperty(obj: object, key: string, value: RecursivePartial<unknown> | undefined, factory: () => IOptionLoader<unknown>): void;
export declare function loadExtendProperty<T extends object, K extends keyof T>(obj: T, key: K, value: T[K] | undefined): void;
export declare function loadOptionProperty<T>(obj: object, key: string, optionClass: new () => IOptionLoader<T>, ...sources: (object | undefined)[]): void;
