import type React from 'react';
export type Target = '_blank' | '_self' | '_parent' | '_top';
type Falsy = boolean | undefined | null | 0;
export declare function classNames(...classes: (string | Falsy)[]): string;
export interface BaseInput {
    register?: any;
    errors?: any;
    setError?: any;
    clearErrors?: any;
}
export interface BaseButton {
    /** A unique identifier for the button */
    id?: string;
    /** A destination to link to, rendered in the href attribute of a link */
    url?: string;
    /** Forces url to open in a new tab */
    external?: boolean;
    /** Tells the browser to download the url instead of opening it. Provides a hint for the downloaded filename if it is a string value */
    download?: string | boolean;
    /** Allows the button to submit a form */
    submit?: boolean;
    /** Disables the button, disallowing merchant interaction */
    disabled?: boolean;
    /** Replaces button text with a spinner while a background action is being performed */
    loading?: boolean;
    /** Callback when clicked */
    onClick?(): unknown;
    className?: string;
}
export type IconSource = React.FunctionComponent<React.SVGProps<SVGSVGElement>> | 'placeholder' | string;
export interface ComplexAction extends Action, SubmitAction, DisableableAction, DestructableAction, LoadableAction {
}
export interface MenuActionDescriptor extends ComplexAction, TooltipAction {
    /** Zero-indexed numerical position. Overrides the action's order in the menu */
    index?: number;
}
export interface Action {
    /** A unique identifier for the action */
    id?: string;
    /** Content the action displays */
    content?: string;
    /** Visually hidden text for screen readers */
    accessibilityLabel?: string;
    /** A destination to link to, rendered in the action */
    url?: string;
    /** Forces url to open in a new tab */
    external?: boolean;
    /** Where to display the url */
    target?: Target;
    /** Action loading */
    loading?: boolean;
    /** Callback when an action takes place */
    onClick?(): void;
    onDelete?(): void;
    /** Callback when mouse enter */
    onMouseEnter?(): void;
    /** Callback when element is touched */
    onTouchStart?(): void;
}
export interface DisableableAction extends Action {
    /** Whether or not the action is disabled */
    disabled?: boolean;
}
export interface SubmitAction extends Action {
    /** Whether or not the action is disabled */
    submit?: boolean;
}
export interface DestructableAction extends Action {
    /** Destructive action */
    destructive?: boolean;
}
export interface LoadableAction extends Action {
    /** Should a spinner be displayed */
    loading?: boolean;
}
export interface TooltipAction {
    /** Text content to render in a tooltip */
    helpText?: React.ReactNode;
}
export type Color = 'default' | 'subdued' | 'critical' | 'success' | 'primary' | 'warning' | 'info' | 'highlight' | 'neutral' | 'attention' | 'decorative' | 'danger';
export type BorderColor = 'default';
export type SpacingScale = 'none' | 'atomic' | 'tight' | 'snappy' | 'base' | 'loose' | 'spacious' | 'distant';
export type AlignItems = 'start' | 'center' | 'end';
export type JustifyContent = 'start' | 'center' | 'end' | 'between' | 'around';
export type GridColumns = 1 | 2 | 3;
export type TextSize = 'heading' | 'title' | 'body' | 'subtitle' | 'caption' | 'micro';
export type TextWeight = 'regular' | 'medium' | 'semibold' | 'bold';
export type LineHeight = 'none' | 'tight' | 'base' | 'loose';
export type Responsive<T> = T | {
    initial?: T;
    sm?: T;
    md?: T;
    lg?: T;
    xl?: T;
};
export {};
