import type { CSSProperties } from 'react';
import type { HydratedTheme } from '../schema';
export type ButtonSlot = 'primary' | 'secondary' | 'ghost' | 'link' | 'ctaGradient' | 'accent';
export type ButtonEmphasis = 'solid' | 'outline' | 'ghost' | 'link';
export type ButtonFill = 'flat' | 'gradient' | 'duotone';
export type ButtonSpec = {
    id: string;
    slot: ButtonSlot;
    emphasis: ButtonEmphasis;
    role: string;
    fill: ButtonFill;
    weight: number;
    constraints?: {
        minContrast?: number;
        allowGradient?: boolean;
    };
};
export type ButtonResolved = {
    className: string;
    style?: CSSProperties;
};
export declare function resolveButton(spec: ButtonSpec, theme: HydratedTheme, options?: {
    size?: 'sm' | 'md' | 'lg' | 'xl';
}): ButtonResolved;
export declare function suggestButtons(theme: HydratedTheme, library: ButtonSpec[], max?: number): ButtonSpec[];
export declare function getButtonCornersClass(theme: HydratedTheme): string;
export declare function getButtonSizeClass(size: 'sm' | 'md' | 'lg' | 'xl'): string;
