import { type VariantProps } from "class-variance-authority";
import React from "react";
declare const splitHalfVariants: (props?: ({
    variant?: "accent" | "outline" | "transparent" | "destructive" | null | undefined;
    size?: "default" | "small" | null | undefined;
    side?: "main" | "icon" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
type SplitButtonVariant = NonNullable<VariantProps<typeof splitHalfVariants>["variant"]>;
type SplitButtonSize = NonNullable<VariantProps<typeof splitHalfVariants>["size"]>;
interface SplitButtonIconAction {
    icon: React.ReactNode;
    /** The icon half is interactive but has no visible text — needs an accessible name. */
    "aria-label": string;
    onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;
    href?: string;
    openInNewTab?: boolean;
    prefetch?: boolean;
    disabled?: boolean;
}
interface SplitButtonProps {
    variant?: SplitButtonVariant;
    size?: SplitButtonSize;
    fullWidth?: boolean;
    className?: string;
    children: React.ReactNode;
    onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;
    href?: string;
    openInNewTab?: boolean;
    prefetch?: boolean;
    leftIcon?: React.ReactNode;
    rightIcon?: React.ReactNode;
    /** Disables both halves. Equivalent to `mainDisabled && iconAction.disabled`. */
    disabled?: boolean;
    /** Disables only the main half. Combine with `iconAction.disabled` for finer control. */
    mainDisabled?: boolean;
    type?: "button" | "submit" | "reset";
    "aria-label"?: string;
    groupAriaLabel?: string;
    iconAction: SplitButtonIconAction;
}
declare const SplitButton: React.ForwardRefExoticComponent<SplitButtonProps & React.RefAttributes<HTMLDivElement>>;
export { SplitButton, type SplitButtonProps, type SplitButtonIconAction };
//# sourceMappingURL=split-button.d.ts.map