import type { Theme } from '../schema';
/**
 * Resolves theme tokens to CSS variables
 *
 * This resolver ensures all button styles use theme tokens (not hardcoded colors)
 * so that changing the palette automatically updates all buttons.
 */
export declare class TokenResolver {
    private theme;
    constructor(theme: Theme);
    /**
     * Resolve a color token to a CSS variable reference wrapped in rgb()
     *
     * @param token - Token name (e.g., 'primary-500', 'white', 'text-900')
     * @returns CSS rgb() function with var reference (e.g., 'rgb(var(--tb-primary-500))')
     *
     * Note: CSS variables are stored as RGB channels (e.g., "37 99 235") following Tailwind convention,
     * so we must wrap them with rgb() to create a valid color value.
     *
     * @example
     * resolver.getColor('primary-500') // => 'rgb(var(--tb-primary-500))'
     * resolver.getColor('white') // => 'rgb(var(--tb-white))'
     */
    getColor(token: string): string;
    /**
     * Adjust a color token's shade by a given amount
     *
     * @param token - Base token (e.g., 'primary-500')
     * @param amount - Shade adjustment (+100 = darker, -100 = lighter)
     * @returns Adjusted token name (e.g., 'primary-600')
     *
     * @example
     * resolver.adjustShade('primary-500', 100) // => 'primary-600' (darker)
     * resolver.adjustShade('primary-500', -100) // => 'primary-400' (lighter)
     */
    adjustShade(token: string, amount: number): string;
    /**
     * Check if a token exists in the theme palette
     *
     * @param token - Token name to check
     * @returns True if token exists in theme
     */
    private tokenExists;
}
