import { ButtonProps } from './types';
/**
 * Button - Interactive button component for user actions.
 *
 * Variant colors are driven entirely by `theme.palette` for solid variants — each
 * reads `palette.<variant>.main` (default), `palette.<variant>.dark` (hover/active),
 * `palette.<variant>.light` (focus). Override any palette entry in a custom theme
 * to restyle a variant without affecting other components.
 *
 * ### Variants (default: `custom`)
 * - `custom`    — transparent, dark text; recommended for low-emphasis actions (default)
 * - `primary`   — blue, high emphasis, white text
 * - `secondary` — grey, medium emphasis, dark text
 * - `tertiary`  — legacy; same as custom; prefer `custom` instead
 * - `error`     — red, destructive actions, white text
 * - `warning`   — orange, caution actions, white text
 * - `success`   — green, confirmation actions, white text
 *
 * @category Form Controls
 * @subcategory Action
 *
 * @example
 * ```tsx
 * // No variant passed → custom (transparent, recommended)
 * <Button text="Cancel" onClick={handleCancel} />
 * ```
 *
 * @example
 * ```tsx
 * <Button variant="primary" size="medium" onClick={handleSave}>
 *   Save
 * </Button>
 * ```
 *
 * @example
 * ```tsx
 * // Full-width block button
 * <Button variant="primary" size="large" block type="submit">
 *   Submit Form
 * </Button>
 * ```
 *
 * @example
 * ```tsx
 * // Button with custom children
 * <Button variant="secondary" onClick={handleAction}>
 *   <span>Custom Content</span>
 *   <Icon name="arrow-right" />
 * </Button>
 * ```
 *
 * @see {@link ButtonGroup} - For grouped button layouts
 * @see {@link Icon} - For button icons
 *
 * @accessibility
 * Supports full ARIA attributes including:
 * - aria-label, aria-labelledby for accessible labels
 * - aria-disabled for disabled state
 * - aria-pressed for toggle buttons
 * - Keyboard navigation (Enter/Space to activate)
 * - Focus management
 */
export declare const Button: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
export default Button;
