import { type HTMLAttributes, type ReactNode } from "react";
import { type InputToggleSize } from "./inputToggleStyles.js";
/**
 * @since 2.8.0
 * @since 6.0.0 Removed the `circle` and `overlay` props since they are no
 * longer needed. Added the `icon`, `disableEm`, `checkedIcon` and
 * `indeterminateIcon` props.
 * @internal
 */
export interface InputToggleIconProps extends HTMLAttributes<HTMLSpanElement> {
    type: "checkbox" | "radio";
    /**
     * Note: If this is `undefined` and the {@link FORM_CONFIG.uncontrolledToggles} is `false`,
     * the icon state won't work.
     */
    checked?: boolean;
    /**
     * The icon to display while {@link checked} is `false`.
     */
    icon?: ReactNode;
    /**
     * The icon to display while {@link checked} is `true` and
     * {@link indeterminate} is `false`.
     */
    checkedIcon?: ReactNode;
    /**
     * The icon to display while both {@link checked} and {@link indeterminate}
     * are `true`.
     */
    indeterminateIcon?: ReactNode;
    /** @defaultValue `"normal"` */
    size?: InputToggleSize;
    /** @defaultValue `false` */
    error?: boolean;
    /** @defaultValue `false` */
    disabled?: boolean;
    /** @defaultValue `false` */
    disableEm?: boolean;
    /** @defaultValue `false` */
    indeterminate?: boolean;
}
/**
 * **Server Component**
 *
 * @since 2.8.0
 * @since 6.0.0 Updated to use different icons for each checked state instead
 * of a css overlay hack.
 * @internal
 */
export declare const InputToggleIcon: import("react").ForwardRefExoticComponent<InputToggleIconProps & import("react").RefAttributes<HTMLSpanElement>>;
