/**
 * @typedef {import('../../types/DesignToken.d.ts').DesignTokens} Tokens
 * @typedef {import('../../types/DesignToken.d.ts').TransformedTokens} TransformedTokens
 * @typedef {import('../../types/DesignToken.d.ts').DesignToken} Token
 * @typedef {import('../../types/DesignToken.d.ts').TransformedToken} TransformedToken
 * @typedef {import('../../types/Config.d.ts').PlatformConfig} PlatformConfig
 */
/**
 * Applies transforms on all tokens. This
 * does not happen inline, rather it is functional
 * and returns a new object. By doing this,
 * we can perform transforms for different platforms
 * on the same style dictionary.
 * @private
 * @param {Tokens|TransformedTokens} obj
 * @param {PlatformConfig} options
 * @param {{ transformedPropRefs?: string[], deferredPropValueTransforms?: string[] }} [ctx]
 * @param {string[]} [path]
 * @param {Record<string, Tokens|TransformedTokens|Token|TransformedToken>} [transformedObj]
 * @returns {Tokens|TransformedTokens}
 */
export default function transformObject(obj: Tokens | TransformedTokens, options: PlatformConfig, { transformedPropRefs, deferredPropValueTransforms }?: {
    transformedPropRefs?: string[] | undefined;
    deferredPropValueTransforms?: string[] | undefined;
} | undefined, path?: string[] | undefined, transformedObj?: Record<string, import("../../types/DesignToken.d.ts").TransformedToken | import("../../types/DesignToken.d.ts").DesignToken | import("../../types/DesignToken.d.ts").TransformedTokens | import("../../types/DesignToken.d.ts").DesignTokens> | undefined): Tokens | TransformedTokens;
export type Tokens = import('../../types/DesignToken.d.ts').DesignTokens;
export type TransformedTokens = import('../../types/DesignToken.d.ts').TransformedTokens;
export type Token = import('../../types/DesignToken.d.ts').DesignToken;
export type TransformedToken = import('../../types/DesignToken.d.ts').TransformedToken;
export type PlatformConfig = import('../../types/Config.d.ts').PlatformConfig;
