import { type ComponentPropsWithoutRef, type ReactNode, type Ref } from "react";
export interface ToggleOption<T extends string = string> {
    value: T;
    label: ReactNode;
    icon?: ReactNode;
    disabled?: boolean;
}
export type ToggleSize = "sm" | "md" | "lg";
type DivPropsBase = Omit<ComponentPropsWithoutRef<"div">, "onChange" | "children" | "role" | "defaultValue">;
export interface ToggleProps<T extends string = string> extends DivPropsBase {
    label?: ReactNode;
    options: ToggleOption<T>[];
    value: T;
    onChange?: (value: T) => void;
    size?: ToggleSize;
    fullWidth?: boolean;
    /** Disables every option in the group. Per-option disable still works. */
    disabled?: boolean;
    error?: ReactNode;
    helperText?: ReactNode;
    ref?: Ref<HTMLDivElement>;
}
export declare function Toggle<T extends string = string>({ label, options, value, onChange, size, fullWidth, disabled, error, helperText, id: providedId, className, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": consumerDescribedBy, ref, ...rest }: ToggleProps<T>): import("react/jsx-runtime").JSX.Element;
export declare namespace Toggle {
    var displayName: string;
}
export {};
//# sourceMappingURL=Toggle.d.ts.map