import { type AnyVariable, type NormalizedPayload, type ResolvedDerivedVariable } from '../../types';
type Mapping = Record<string, any>;
type JsonArray = Array<JsonLike | string | number>;
type JsonLike = Mapping | JsonArray;
export declare function getIdentifier(variable: AnyVariable<any>): string;
export declare function denormalize(obj: Mapping, lookup: Mapping): Mapping;
export declare function denormalize(obj: JsonArray, lookup: Mapping): JsonArray;
export declare function denormalize<T extends string | number | boolean>(obj: T, lookup: Mapping): T;
type DerivedVariableRequest = Array<ResolvedDerivedVariable | any>;
type PyComponentRequest = Record<string, ResolvedDerivedVariable | any>;
/**
 * Normalize py_component request data into a NormalizedPayload.
 * Puts all variable values into a lookup object to prevent data duplication.
 *
 * @param values resolved values
 * @param kwargsDefinition raw kwarg definition object
 */
export declare function normalizeRequest(values: PyComponentRequest | DerivedVariableRequest, kwargsDefinition: Record<string, AnyVariable<any>> | Array<AnyVariable<any>>): NormalizedPayload<Record<string | number, any>>;
export {};
//# sourceMappingURL=normalization.d.ts.map