import React from 'react';
import type { HTMLProps } from '../utils/utilityTypes';
import type { BaseButtonProps, ButtonShape, ButtonSize, ButtonTheme } from './interface';
export type { ButtonTheme, ButtonSize, ButtonShape };
export interface ButtonCssVars {
    '--height'?: React.CSSProperties['height'];
    '--background'?: React.CSSProperties['background'];
    '--border-radius'?: React.CSSProperties['borderRadius'];
    '--border-color'?: React.CSSProperties['borderColor'];
    '--border-width'?: React.CSSProperties['borderWidth'];
    '--padding-horizontal'?: React.CSSProperties['paddingLeft'];
    '--text-color'?: React.CSSProperties['color'];
    '--font-size'?: React.CSSProperties['fontSize'];
    '--icon-size'?: React.CSSProperties['fontSize'];
    '--loading-color'?: React.CSSProperties['color'];
    '--active-background'?: React.CSSProperties['background'];
    '--active-border-color'?: React.CSSProperties['borderColor'];
    '--active-text-color'?: React.CSSProperties['color'];
    '--active-loading-color'?: React.CSSProperties['color'];
    '--shadow'?: React.CSSProperties['boxShadow'];
}
export declare type AnchorButtonProps = {
    mimeType?: string;
    onClick?: React.MouseEventHandler<HTMLAnchorElement>;
} & BaseButtonProps & HTMLProps<ButtonCssVars> & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'type' | 'onClick'>;
export declare type NativeButtonProps = {
    htmlType?: 'button' | 'submit' | 'reset';
    onClick?: React.MouseEventHandler<HTMLButtonElement>;
} & BaseButtonProps & HTMLProps<ButtonCssVars> & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'type' | 'onClick'>;
export declare type ButtonProps = Partial<AnchorButtonProps & NativeButtonProps>;
declare const Button: React.ForwardRefExoticComponent<Partial<{
    mimeType?: string;
    onClick?: React.MouseEventHandler<HTMLAnchorElement>;
} & BaseButtonProps & HTMLProps<ButtonCssVars> & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, "type" | "onClick"> & {
    htmlType?: 'button' | 'submit' | 'reset';
    onClick?: React.MouseEventHandler<HTMLButtonElement>;
} & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "type" | "onClick">> & React.RefAttributes<unknown>>;
export default Button;
