/**
 * @experimental
 */
export declare class Config<T extends object> {
    private readonly config;
    private readonly transformations;
    constructor(config: T);
    where<K extends keyof T>(fieldName: K, transformation: (value: T[K]) => T[K]): this;
    whereIf<K extends keyof T>(condition: boolean, fieldName: K, transformation: (value: T[K]) => T[K]): this;
    keys(): string[];
    has<K extends keyof T>(key: K): boolean;
    get<K extends keyof T>(key: K): T[K];
    getAsList<K extends keyof T>(key: K): Array<ItemOf<T[K]>>;
    object(): T;
}
type ItemOf<A> = A extends Array<infer E> ? E : A;
export {};
//# sourceMappingURL=Config.d.ts.map