import React, { AllHTMLAttributes, AnchorHTMLAttributes, ButtonHTMLAttributes, ComponentType, CSSProperties, ElementType, FocusEventHandler, MouseEventHandler, ReactChild, ReactNode } from 'react';
export declare type NamiQButtonAppearance = 'danger' | 'link' | 'primary' | 'secondary' | 'subtle' | 'outline' | 'inverse' | 'subtle-link' | 'warning';
export declare type NamiQButtonSpacing = 'compact' | 'default' | 'none';
export interface NamiQButtonProps {
/**
* Button appearance
*/
appearance?: NamiQButtonAppearance;
autoFocus?: boolean;
className?: string;
overlay?: ReactNode;
href?: string;
iconAfter?: ReactChild;
iconBefore?: ReactChild;
isDisabled?: boolean;
isSelected?: boolean;
spacing?: NamiQButtonSpacing;
onBlur?: FocusEventHandler;
onFocus?: FocusEventHandler;
onClick?: MouseEventHandler;
target?: AnchorHTMLAttributes['target'];
type?: ButtonHTMLAttributes['type'];
shouldFitContainer?: boolean;
component?: ComponentType> | ElementType;
isLoading?: boolean;
tabIndex?: number;
children?: ReactNode;
style?: CSSProperties;
}
export declare const styles: (props?: any) => Record<"primary" | "secondary" | "subtle" | "outline" | "inverse" | "compact" | "default" | "label" | "root" | "disabled" | "loading" | "loadingIcon" | "selected" | "fullWidth" | "startIcon" | "endIcon" | "iconSizeNone" | "iconSizeCompact" | "iconSizeDefault" | "visuallyHidden", string>;
export declare const InternalButton: React.ForwardRefRenderFunction;
export declare const Button: React.ForwardRefExoticComponent>;
export default Button;