import { type AnchorHTMLAttributes, type ButtonHTMLAttributes, type ElementType, type ForwardedRef, type PropsWithChildren, type ReactNode } from 'react'; import type { Variant } from './types'; type AbstractProps = PropsWithChildren<{ size: 'M' | 'S'; wide: boolean; variant: Variant; $loading?: boolean; className: string; elementAs?: ElementType; prefix?: ReactNode; suffix?: ReactNode; }>; type AbstractButtonProps = AbstractProps & { isAnchor?: never; buttonRef?: ForwardedRef; }; type ButtonProps = AbstractButtonProps & Omit, keyof AbstractButtonProps>; type AbstractAnchorProps = AbstractProps & { isAnchor: true; anchorRef?: ForwardedRef; }; type AnchorProps = AbstractAnchorProps & Omit, keyof AbstractAnchorProps>; export type Props = ButtonProps | AnchorProps; type FilteredProps = 'size' | 'wide' | 'variant' | 'className' | 'prefix' | 'suffix' | 'children' | 'isAnchor'; export type FilteredButtonProps = Omit; export type FilteredAnchorProps = Omit; export declare const useButtonWrapper: ({ size, wide, variant, $loading, className, prefix, suffix, children, isAnchor, ...rest }: Props) => { filteredProps: FilteredAnchorProps | FilteredButtonProps; classNames: { wrapper: string; loader: string; }; children: import("react/jsx-runtime").JSX.Element; }; export {};