import React from 'react';
/**
 * State variants for the checkbox component
 */
export type CheckboxState = 'default' | 'disabled';
/**
 * Size variants for the checkbox component
 */
export type CheckboxSize = 'sm' | 'md';
/**
 * Orientation for Checkbox.Group layout
 */
export type CheckboxGroupOrientation = 'vertical' | 'horizontal';
/**
 * Checkbox component props
 */
export interface CheckboxProps extends Omit<React.HTMLAttributes<HTMLInputElement>, 'onChange' | 'size'> {
    id?: string;
    name?: string;
    value: string;
    checked?: boolean;
    indeterminate?: boolean;
    onChange?: (checked: boolean, value: string) => void;
    label?: React.ReactNode;
    description?: React.ReactNode;
    state?: CheckboxState;
    size?: CheckboxSize;
    className?: string;
}
/**
 * Checkbox.Group component props
 */
export interface CheckboxGroupProps extends Omit<React.HTMLAttributes<HTMLFieldSetElement>, 'onChange'> {
    value?: string[];
    defaultValue?: string[];
    onChange?: (value: string[]) => void;
    name?: string;
    size?: CheckboxSize;
    state?: CheckboxState;
    orientation?: CheckboxGroupOrientation;
    label?: React.ReactNode;
    description?: React.ReactNode;
    error?: React.ReactNode;
    required?: boolean;
    className?: string;
}
/**
 * Checkbox theme configuration
 */
export interface CheckboxTheme {
    baseStyle: string;
    inputContainerStyle: string;
    inputStyle: string;
    descriptionStyle: string;
    sizes: Record<CheckboxSize, string>;
    groupStyle?: string;
    groupHorizontalStyle?: string;
    groupDescriptionStyle?: string;
    groupErrorStyle?: string;
    groupItemsStyle?: string;
}
