///
import { ComponentProps, ExcludedProps, VariantProps } from "@vitality-ds/system";
import type { valueof } from "../helpers/logic/type-helpers";
import { ShortcutsProps } from "../Shortcuts/types";
import { BaseButton } from "./primitives/styled";
import { ButtonPrimitiveProps } from "./primitives/types";
declare type ButtonVariantOptions = valueof, "variant">>;
declare type ButtonColorOptions = valueof, "color">>;
declare type ButtonSpinnerColor = ButtonPrimitiveProps["spinnerColor"];
declare type Appearance = {
color: ButtonColorOptions;
variant: ButtonVariantOptions;
spinnerColor: ButtonSpinnerColor;
shortcutsVariant: ButtonPrimitiveProps["shortcutsVariant"];
};
export declare type Appearances = {
onSurface: Appearance;
standard: Appearance;
primary: Appearance;
destructive: Appearance;
warning: Appearance;
ghost: Appearance;
link: Appearance;
};
export declare type ButtonProps = ExcludedProps & ComponentProps & {
/**
* The visual appearance of the component.
*/
appearance?: keyof Appearances;
/**
* Text contents of the component.
*/
children: React.ReactNode;
/**
* @ignore
*/
color?: never;
/**
* The Icon to the left of the Button text.
*/
iconLeft?: React.ReactNode;
/**
* The Icon to the right of the Button text.
*/
iconRight?: React.ReactNode;
/**
* @ignore
*/
variant?: never;
/**
* Show a spinner as an overlay on the button when an asynchronous process is loading. Disables the button whilst `true`
*/
isLoading?: boolean;
shortcut?: ShortcutsProps["keys"];
};
export {};