/**
 * Phase 2 translator: figma variables → composition brand-variable entries,
 * a human-readable sidecar, and binding-index records (design spec §6, §7.1).
 *
 * Pure — REST payload in, artifacts out. Alias chains are walked to the leaf
 * value (cycle-safe) but the binding records the semantic id the designer
 * bound, so a swapped primitive doesn't orphan the link.
 */
import type { FigmaVariablesResult } from "./client";
import type { FigmaBindingRecord } from "./bindings";
/** data-composition-variables entry (runtime getVariables contract). */
export interface CompositionVariableEntry {
    id: string;
    type: "string" | "number" | "color" | "boolean";
    label: string;
    default: string | number | boolean;
    brandRole?: string;
}
export interface FigmaTokenSidecarEntry {
    name: string;
    type: string;
    figmaId: string;
    key?: string;
    value: string | number | boolean | null;
}
export interface FigmaTokensSidecar {
    source: TokenSource;
    tokens: FigmaTokenSidecarEntry[];
}
export interface TokenSource {
    fileKey: string;
    version: string;
}
export interface TokensToVariablesResult {
    entries: CompositionVariableEntry[];
    bindings: FigmaBindingRecord[];
    sidecar: FigmaTokensSidecar;
}
export declare function tokensToVariables(vars: FigmaVariablesResult, source: TokenSource): TokensToVariablesResult;
//# sourceMappingURL=tokensToVariables.d.ts.map