/**
 * Binding resolution pass (design spec §7.1): scan a node tree's complete
 * binding set — boundVariables and style ids, alias chains honored — and
 * partition against the binding index BEFORE any CSS is emitted.
 *
 * Exact-ID matching only. A missed link bakes a visually-correct literal;
 * a wrong link silently changes color at the next brand refresh. Never
 * match by value or name.
 *
 * NOTE: the consumer-side boundVariables shape is probe-flagged in the spec
 * (§7.1 pre-build probes). Extraction here is tolerant: single alias objects
 * and arrays of alias objects both count; unknown shapes are ignored rather
 * than guessed at.
 */
import type { FigmaBindingRecord } from "./bindings";
import type { FigmaNodeDocument } from "./client";
export interface BindingSite {
    nodeId: string;
    /** boundVariables property ("fills") or style slot prefixed "style:" ("style:text") */
    property: string;
    figmaId: string;
}
export interface ResolvedBindingSite extends BindingSite {
    compositionVariableId: string;
}
export interface ResolveBindingsResult {
    resolved: ResolvedBindingSite[];
    unresolved: BindingSite[];
}
export declare function resolveBindings(node: FigmaNodeDocument, index: FigmaBindingRecord[]): ResolveBindingsResult;
//# sourceMappingURL=resolveBindings.d.ts.map