
"use client";
import { RadioVariant } from "../../../types/dist/index.js";
import { DataAttributes, RadioProps } from "./types.js";
import React, { CSSProperties, ReactNode } from "react";

//#region src/components/client/Radio/RadioBase.d.ts
type ResolvedRadioVariant = RadioVariant | 'alert' | 'alert-secondary';
type RenderRootArgs = {
  className: string;
  style?: CSSProperties;
  rootSlotProps: DataAttributes;
  hasLabel: boolean;
  isPressed: boolean;
  onHoverStart: () => void;
  onHoverEnd: () => void;
  onTapStart: () => void;
  onTapEnd: () => void;
  children: ReactNode;
};
type RenderIndicatorArgs = {
  size: NonNullable<RadioProps['size']>;
  variant: ResolvedRadioVariant;
  checked: boolean;
  disabled?: boolean;
  showHoverEffect: boolean;
  showPressedEffect: boolean;
  cssAnimationDuration: string;
  radioSlotProps: DataAttributes;
  radioIconSlotProps: DataAttributes;
  children: ReactNode;
};
type RadioBaseProps = RadioProps & {
  cssAnimationDuration: string;
  enableInteractionTracking?: boolean;
  renderRoot: (args: RenderRootArgs) => ReactNode;
  renderIndicator: (args: RenderIndicatorArgs) => ReactNode;
};
declare const RadioBase: React.ForwardRefExoticComponent<RadioProps & {
  cssAnimationDuration: string;
  enableInteractionTracking?: boolean;
  renderRoot: (args: RenderRootArgs) => ReactNode;
  renderIndicator: (args: RenderIndicatorArgs) => ReactNode;
} & React.RefAttributes<HTMLInputElement>>;
//#endregion
export { RadioBase, type RadioBaseProps, type RenderIndicatorArgs, type RenderRootArgs, type ResolvedRadioVariant };