import { AccessibilityProps, KeyboardHandlerMap, TokenContract } from '../shared/index.js';

type CheckedState = boolean | 'indeterminate';
interface CheckboxProps {
    checked?: CheckedState;
    disabled?: boolean;
    required?: boolean;
    name?: string;
    value?: string;
}
interface CheckboxAPI {
    /** ARIA attributes to spread on the element */
    ariaProps: Partial<AccessibilityProps>;
    /** Keyboard handlers to attach */
    keyboardHandlers: KeyboardHandlerMap;
    /** Whether interaction should be blocked */
    isInteractive: boolean;
    /** Data attributes for CSS styling hooks */
    dataAttributes: Record<string, string>;
    /** Current state */
    state: {
        checked: CheckedState;
        disabled: boolean;
    };
}
declare function createCheckbox(props?: CheckboxProps): CheckboxAPI;
/** SVG path data for the check icon */
declare const checkIconPath = "M20 6L9 17l-5-5";
/** SVG path data for the indeterminate/minus icon */
declare const indeterminateIconPath = "M5 12h14";

declare const checkboxTokens: TokenContract;
declare const checkboxVariants: (props?: ({
    checked?: "indeterminate" | "true" | "false" | undefined;
    size?: "sm" | "default" | "lg" | undefined;
} & {
    className?: string;
}) | undefined) => string;

export { type CheckboxAPI, type CheckboxProps, type CheckedState, checkIconPath, checkboxTokens, checkboxVariants, createCheckbox, indeterminateIconPath };
