export declare function getVariables<T extends Record<string, unknown> = Record<string, unknown>>(): Partial<T>;
export declare function warnUnknownEnumValues(declarer: Element | null | undefined, resolved: Record<string, unknown>, compositionId?: string): void;
/** Test-only: clear the per-page dedupe set. */
export declare function resetUnknownEnumWarnings(): void;
/**
 * Extract `{id: default}` map from an element's `data-composition-variables`
 * attribute. Returns an empty object when the attribute is missing, the JSON
 * is unparseable, or the payload isn't an array. Exported so the
 * compositionLoader can compute the same defaults map for sub-comp instances.
 */
export declare function readDeclaredDefaults(root: Element | null): Record<string, unknown>;
/**
 * Define primitive-valued variables as CSS custom properties on `target`,
 * recording the applied names so re-init/unmount can clear them. Empty
 * strings are skipped — CSSOM setProperty("", …) REMOVES the property, and a
 * blank default has no CSS meaning anyway.
 */
export declare function applyCssVariables(target: Element, variables: Record<string, unknown>): void;
/** Keep only variables whose CSS custom property is not already defined. */
export declare function filterVariablesIfAbsent(target: Element, variables: Record<string, unknown>, view: Window | null): Record<string, unknown>;
/** Remove custom properties a previous applyCssVariables call defined. */
export declare function clearAppliedCssVariables(target: Element): void;
/**
 * Imported figma components reference brand tokens as `var(--slug, literal)`.
 * Define each declaring element's composition variables as CSS custom
 * properties ON THAT ELEMENT — scoping by the cascade, so two compositions
 * on one page can't clobber each other and a flattened sub-composition root
 * correctly styles only its own subtree.
 *
 * Declared DEFAULTS are define-if-absent: a value the author already styled
 * (stylesheet `:root` rule, compile-time emission, hand-written inline) wins
 * over the declared default, preserving pre-existing conventions where a
 * variable id coincides with an authored custom property. Render-time
 * overrides (`--variables` → `window.__hfVariables`) always win — that's
 * explicit user intent.
 */
export declare function injectCompositionCssVariables(doc: Document): void;
/** Parse a host element's `data-variable-values` JSON attribute (per-instance
 * sub-composition overrides). Shared by the runtime loader and the bundler. */
export declare function parseHostVariableValues(host: Element): Record<string, unknown>;
/** Render-time variable overrides (`hyperframes render --variables`). */
export declare function readRenderOverrides(): Record<string, unknown>;
//# sourceMappingURL=getVariables.d.ts.map