import type { AllowNullish, Nullish, TypeCheckFunction } from '../types/private-types';
import type { KeyList, SpecialKeys, ValueBasedResolver } from '../types/resolver-types';
export declare function createValueBasedResolver<K extends string, S extends string, V, O extends string, D = V>(keys: KeyList<K>, isValidValue: TypeCheckFunction<V>, defaultValue: D, overrideKey: O, special: SpecialKeys<S, K>): ValueBasedResolver<K, S | O, V, D>;
export declare function createValueBasedResolver<K extends string, V, O extends string, D = V>(keys: KeyList<K>, isValidValue: TypeCheckFunction<V>, defaultValue: D, overrideKey: O, special?: Nullish): ValueBasedResolver<K, O, V, D>;
export declare function createValueBasedResolver<K extends string, S extends string, V, O extends string>(keys: KeyList<K>, isValidValue: TypeCheckFunction<V>, defaultValue: V, overrideKey: O, special: SpecialKeys<S, K>): ValueBasedResolver<K, S | O, V>;
export declare function createValueBasedResolver<K extends string, V, O extends string>(keys: KeyList<K>, isValidValue: TypeCheckFunction<V>, defaultValue: V, overrideKey: O, special?: Nullish): ValueBasedResolver<K, O, V>;
export declare function createValueBasedResolver<K extends string, S extends string, V, O extends string>(keys: KeyList<K>, isValidValue: TypeCheckFunction<V>, defaultValue: V, overrideKey: O, special?: AllowNullish<SpecialKeys<S, K>>): ValueBasedResolver<K, S | O, V>;
//# sourceMappingURL=value-based.d.ts.map