import type { NestedKey } from '../../types/core';
/**
 * Resolve the value of the variable using it's optional nested
 *
 * By the time this function is called, templating should have resolved any LoopVariables
 * in the nested array to strings. This function accepts NestedKey[] for type compatibility
 * but expects all elements to be strings at runtime.
 *
 * @param obj an object to resolve from
 * @param nested a list of keys to resolve (should be strings after templating)
 */
export declare function resolveNested<T extends Record<string, any>>(obj: T, nested: NestedKey[]): any;
/**
 * Set a nested value inside a given object.
 *
 * By the time this function is called, templating should have resolved any LoopVariables
 * in the nested array to strings. This function accepts NestedKey[] for type compatibility
 * but expects all elements to be strings at runtime.
 *
 * @param obj an object to set the value of
 * @param nested a list of keys pointing at the value to set (should be strings after templating)
 * @param newValue a new value to set
 */
export declare function setNested<T extends Record<string, any>>(obj: T, nested: NestedKey[], newValue: unknown): T;
//# sourceMappingURL=nested.d.ts.map