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").FlattenInterpolation>; /** 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; export declare const ButtonStyled: import("styled-components").StyledComponent<"button", import("styled-components").DefaultTheme, ButtonStyledProps, never>; export declare const ButtonLabel: import("styled-components").StyledComponent<"span", import("styled-components").DefaultTheme, {}, never>; export declare const ButtonIcon: import("styled-components").StyledComponent<"span", import("styled-components").DefaultTheme, { label: React.ReactNode; }, never>; export declare const ButtonLoader: import("styled-components").StyledComponent; 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