import { type ReactNode } from "react"; import type { LucideIcon } from "lucide-react"; export * from "./variants.js"; export type SplitButtonVariant = "default" | "secondary" | "destructive" | "outline"; export type SplitButtonSize = "default" | "sm" | "lg"; export type SplitButtonItem = { id: string; label: string; /** Optional second line rendered muted under the label. */ description?: string; icon?: LucideIcon; disabled?: boolean; hidden?: boolean; /** Draw a separator above this item to start a new group. */ separatorBefore?: boolean; onSelect: () => void; }; export type SplitButtonProps = { /** Primary segment content — icon + label as children, like Button. */ children: ReactNode; /** Primary segment activation. */ onClick: () => void; /** * Accessible name for the chevron segment — what screen readers announce * and tests query by role. Required so the trigger is never anonymous. */ menuLabel: string; items: SplitButtonItem[]; variant?: SplitButtonVariant; size?: SplitButtonSize; /** Disables both segments. */ disabled?: boolean; fullWidth?: boolean; /** Menu alignment relative to the control. */ align?: "start" | "end"; }; /** * A primary action with attached secondary choices. The two segments render * as one control; when every item is hidden the chevron disappears and only * the primary button remains. */ export declare function SplitButton({ children, onClick, menuLabel, items, variant, size, disabled, fullWidth, align, }: SplitButtonProps): import("react").JSX.Element; //# sourceMappingURL=index.d.ts.map