import * as React from 'react';
import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
import type { LucideIcon } from 'lucide-react';
/**
 * SegmentedControl — 互斥多選一的 value 選擇器
 *
 * 基於 Radix ToggleGroup（寫死 type="single"），橋接設計系統 token。
 * 內部 item 結構鏡射 Button，但兩者型別獨立。
 *
 * ── 定位 ──
 *   切 value（不是切 view）。塞得進 Field，Tabs 不行。
 *   切 view → Tabs；單一 on/off → Button pressed；>5 個選項 → Select。
 *
 * ── Size（對齊 field-height / Button 系列）──
 *   xs   h-field-xs（24 固定）
 *   sm   h-field-sm（28/32）
 *   md   h-field-md（32/36）★ 預設（跟 Button / Input / 所有 field-height 系列一致）
 *   lg   h-field-lg（36/40）
 *
 * ── fullWidth ──
 *   false  ★ 預設，item 寬度由內容決定（hug content）
 *   true   SegmentedControl 撐滿父容器寬度，所有 item 等分
 *
 * ── Item 結構 ──
 *   [startIcon?] [<span px-1>label</span>] [<span gap-1>suffix?</span>]
 *   suffix 目前只支援 badge；endIcon 為保留 slot、未開放
 *
 * ── iconOnly（group-level）──
 *   整組同時 icon-only 或全帶 label，不可混搭。
 */
type SegmentedControlSize = 'xs' | 'sm' | 'md' | 'lg';
declare const segmentedControlVariants: (props?: ({
    fullWidth?: boolean | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
export interface SegmentedControlProps extends Omit<React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root>, 'type' | 'defaultValue' | 'value' | 'onValueChange'> {
    size?: SegmentedControlSize;
    /** 撐滿父容器寬度，所有 item 等分。預設 false（hug content） */
    fullWidth?: boolean;
    iconOnly?: boolean;
    value?: string;
    defaultValue?: string;
    onValueChange?: (value: string) => void;
}
declare const SegmentedControl: React.ForwardRefExoticComponent<SegmentedControlProps & React.RefAttributes<HTMLDivElement>>;
declare const itemVariants: (props?: ({
    size?: "sm" | "md" | "lg" | "xs" | null | undefined;
    fullWidth?: boolean | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
export interface SegmentedControlItemProps extends React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> {
    /** 左側 icon（LucideIcon）。group iconOnly = true 時必填。 */
    startIcon?: LucideIcon;
    /** 右側 suffix badge（通常是計數指示器）。group iconOnly = true 時會被忽略。 */
    badge?: React.ReactNode;
    /**
     * 無障礙名稱。帶 label 時可選（label 已傳達語意），
     * 但 group iconOnly = true 時必填——同時驅動 screen reader 和自動 tooltip。
     */
    'aria-label'?: string;
    children?: React.ReactNode;
}
declare const SegmentedControlItem: React.ForwardRefExoticComponent<SegmentedControlItemProps & React.RefAttributes<HTMLButtonElement>>;
export declare const segmentedControlMeta: {
    readonly component: "SegmentedControl";
    readonly family: 3;
    readonly variants: {};
    readonly sizes: {
        readonly xs: {
            readonly fieldHeight: 24;
            readonly typography: "caption";
            readonly iconSize: 16;
            readonly purpose: "row-embedded inline action / DataTable inline filter";
        };
        readonly sm: {
            readonly fieldHeight: 28;
            readonly typography: "body";
            readonly iconSize: 16;
            readonly purpose: "compact chrome bar / dense toolbar";
        };
        readonly md: {
            readonly fieldHeight: 32;
            readonly typography: "body";
            readonly iconSize: 16;
            readonly purpose: "預設 — form field 對齊";
        };
        readonly lg: {
            readonly fieldHeight: 36;
            readonly typography: "body-lg";
            readonly iconSize: 20;
            readonly purpose: "touch / prominent CTA";
        };
    };
    readonly states: readonly ["default", "hover", "active", "focus-visible", "disabled"];
    readonly tokens: {
        readonly bg: readonly ["bg-surface"];
        readonly fg: readonly ["text-fg-disabled", "text-fg-secondary", "text-foreground"];
        readonly ring: readonly ["ring-ring"];
    };
    readonly defaultSize: "md";
};
export { SegmentedControl, SegmentedControlItem, segmentedControlVariants, itemVariants as segmentedControlItemVariants };
export type { SegmentedControlSize };
//# sourceMappingURL=segmented-control.d.ts.map