import { type ButtonHTMLAttributes, type CSSProperties, type MouseEvent, type Ref } from 'react';
type StatusButtonStatus = 'idle' | 'loading' | 'success';
type StatusButtonProps = Omit, 'children' | 'className' | 'onClick' | 'style'> & {
idleLabel?: string;
loadingLabel?: string;
successLabel?: string;
loadingDuration?: number;
successDuration?: number;
className?: string;
buttonClassName?: string;
indicatorClassName?: string;
style?: CSSProperties;
buttonStyle?: CSSProperties;
onClick?: (event: MouseEvent) => void | PromiseLike;
onStatusChange?: (status: StatusButtonStatus) => void;
onSuccess?: () => void;
onError?: (error: unknown) => void;
ref?: Ref;
};
declare const StatusButton: ({ idleLabel, loadingLabel, successLabel, loadingDuration, successDuration, className, buttonClassName, indicatorClassName, style, buttonStyle, disabled, type, onClick, onStatusChange, onSuccess, onError, ref, "aria-label": ariaLabel, ...buttonProps }: StatusButtonProps) => import("react/jsx-runtime").JSX.Element;
export { StatusButton };
export type { StatusButtonProps, StatusButtonStatus };