import * as React from "react";
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
import { type VariantProps } from "class-variance-authority";
import type { FieldMode, FieldVariant } from "../../components/Field/field-types";
export interface RadioGroupProps extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root> {
    /**
     * Field mode(2026-05-05 Phase B3 align):
     *   edit     — 一般可互動 RadioGroup(預設)
     *   display  — **純展示**:不渲染 Radix Root / 任何 radio 視覺;RadioGroup 本體 walk
     *              children,僅 control.value === group.value 那筆把 label 渲染為純文字 span。
     *              對齊 Carbon read-only / DataTable single-select cell read mode。
     *   readonly — 同 child item 各自 readOnly:radio 視覺保留 + 鎖互動
     *   disabled — 同 RadioGroupPrimitive.Root disabled 屬性
     */
    mode?: FieldMode;
    /**
     * Visual chrome — RadioGroup 本體無 input wrapper variant,本 prop 對主體無視覺影響;
     * 為對齊 Field 4-mode + chrome 透傳契約而保留(M19 一致性)。
     */
    variant?: FieldVariant;
}
declare const RadioGroup: React.ForwardRefExoticComponent<RadioGroupProps & React.RefAttributes<HTMLDivElement>>;
declare const radioItemVariants: (props?: ({
    size?: "sm" | "md" | "lg" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
type RadioItemPrimitiveProps = React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>;
export interface RadioGroupItemProps extends RadioItemPrimitiveProps, VariantProps<typeof radioItemVariants> {
    /**
     * Inline label。提供時 RadioGroupItem 自動透過 SelectionItem 包裝，
     * 套用 codified 樣式（text-body / text-foreground / disabled 色）。
     * 在 <Field> context 內時此 prop 仍然生效（Radio 的 label 是每個 item
     * 各自的，不是整組 Field 的；FieldLabel 是 RadioGroup 整體的 label）。
     */
    label?: React.ReactNode;
    /**
     * Inline description（secondary 文字）。須與 label 搭配使用。
     * 套用 text-body / text-fg-secondary 樣式。
     */
    description?: React.ReactNode;
    /**
     * readonly 模式：鎖定互動但維持 checked/unchecked 視覺正確。
     * 通常整個 RadioGroup 一起設 readonly（由 parent RadioGroup 的 disabled
     * 或 readonly 行為決定），個別 item 也可設。
     */
    readOnly?: boolean;
}
declare const RadioGroupItem: React.ForwardRefExoticComponent<RadioGroupItemProps & React.RefAttributes<HTMLButtonElement>>;
export declare const radioGroupMeta: {
    readonly component: "RadioGroup";
    readonly family: null;
    readonly variants: {};
    readonly sizes: {
        readonly sm: {
            readonly fieldHeight: 28;
            readonly iconSize: 16;
            readonly typography: "body";
        };
        readonly md: {
            readonly fieldHeight: 32;
            readonly iconSize: 16;
            readonly typography: "body";
        };
        readonly lg: {
            readonly fieldHeight: 36;
            readonly iconSize: 20;
            readonly typography: "body-lg";
        };
    };
    readonly states: readonly ["default", "hover", "active", "focus-visible", "disabled"];
    readonly tokens: {
        readonly bg: readonly ["bg-disabled", "bg-surface"];
        readonly fg: readonly ["text-fg-disabled", "text-fg-secondary", "text-foreground", "text-primary"];
        readonly ring: readonly ["ring-ring"];
    };
    readonly defaultSize: "md";
};
export { RadioGroup, RadioGroupItem, radioItemVariants };
//# sourceMappingURL=radio-group.d.ts.map