import { PluginAPI } from 'tailwindcss/types/config';
import { DefaultColors } from 'tailwindcss/types/generated/colors';
import { DesignSystemTheme, TailwindThemeConfig } from '../config/theme';
import { Leaves } from './types/path.type';

type ColorType = DesignSystemTheme["colors"] & Omit<DefaultColors, keyof DesignSystemTheme["colors"]>;
/**
 * This class wraps around tailwind's theme function (`PluginAPI['theme']`)
 * and provides type safe functions for getting theme tokens / values.
 */
export declare class ThemeHelper {
    private readonly getTailwindThemeValue;
    constructor(getTailwindThemeValue: PluginAPI["theme"]);
    color: (path: Leaves<ColorType>) => string;
    /**
     * Translates from unit spaces to actual measurements.
     */
    spacing: (...values: number[]) => string;
    /**
     * This is a generic typesafe getter. Use `color()` and `space()` if those
     * functions are applicable because they offer stricter type safety.
     */
    get: (path: Leaves<DesignSystemTheme> & Leaves<TailwindThemeConfig>) => string;
}
export {};
