import { Selector, InsertPos, DeepRequired } from './types';
export declare class ConfigModification<TConfig extends Record<string, any>, TConfigBuilderOptions extends Record<string, any>, TSelectedValue, TRequiredConfiguration extends DeepRequired<TConfig> = DeepRequired<TConfig>> {
    protected readonly createNewValue: (selectedValue: TSelectedValue, options: TConfigBuilderOptions) => TSelectedValue;
    readonly id?: string | undefined;
    readonly path: string;
    constructor(selector: Selector<TRequiredConfiguration, TSelectedValue>, createNewValue: (selectedValue: TSelectedValue, options: TConfigBuilderOptions) => TSelectedValue, id?: string | undefined);
    apply(target: TConfig, options: TConfigBuilderOptions): this;
    static arrayInsertCreator<TSelectedValue extends any[]>(creator: (options: any) => TSelectedValue[0] | undefined, position: InsertPos): (array: TSelectedValue, options: any) => TSelectedValue;
}
//# sourceMappingURL=ConfigModification.d.ts.map