import type { ButtonHTMLAttributes } from 'react'; import { Loader } from '../loader/Loader.component'; import { Props as TooltipProps } from '../tooltip/Tooltip.component'; export declare const FocusVisibleStyle: import("styled-components").RuleSet; /** Props used by ButtonStyled for styling (no tooltip) */ type ButtonStyledProps = Omit, 'size' | 'label'> & { variant?: 'primary' | 'secondary' | 'danger' | 'outline'; size?: 'default' | 'inline'; disabled?: boolean; onClick?: (event: React.MouseEvent) => void; icon?: React.ReactNode; label?: React.ReactNode; isLoading?: boolean; }; /** Button with a visible label - tooltip is optional */ type ButtonWithLabel = ButtonStyledProps & { label: React.ReactNode; tooltip?: Omit; }; /** Icon-only button - requires either string tooltip OR explicit aria-label */ type IconOnlyButton = ButtonStyledProps & { label?: never; } & ({ tooltip: Omit & { overlay: string; }; 'aria-label'?: string; } | { tooltip: Omit; 'aria-label': string; }); export type Props = ButtonWithLabel | IconOnlyButton; /** Transient (style-only) props consumed by ButtonStyled; not forwarded to the DOM in v6 */ type ButtonStyledTransientProps = { $variant?: ButtonStyledProps['variant']; $size?: ButtonStyledProps['size']; $icon?: React.ReactNode; $label?: React.ReactNode; }; export declare const ButtonStyled: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit, HTMLButtonElement>, keyof ButtonStyledTransientProps> & ButtonStyledTransientProps, never> & Partial, HTMLButtonElement>, keyof ButtonStyledTransientProps> & ButtonStyledTransientProps, never>>> & string; export declare const ButtonLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit, HTMLSpanElement>, never> & Partial, HTMLSpanElement>, never>>> & string; export declare const ButtonIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit, HTMLSpanElement>, "$label"> & { $label: React.ReactNode; }, never> & Partial, HTMLSpanElement>, "$label"> & { $label: React.ReactNode; }, never>>> & string; export declare const ButtonLoader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit & { $label?: React.ReactNode; $variant?: ButtonStyledProps["variant"]; }, never> & Partial & { $label?: React.ReactNode; $variant?: ButtonStyledProps["variant"]; }, never>>> & string & Omit>; declare function Button({ variant, size, disabled, label, icon, onClick, tooltip, isLoading, ...rest }: Props): import("react/jsx-runtime").JSX.Element; export { Button }; //# sourceMappingURL=Buttonv2.component.d.ts.map