import { type ComponentProps, type ReactNode } from 'react';
import type { GDSComponentProps } from '@graphprotocol/gds-css';
import { CheckableMeta } from './Checkable.meta.ts';
import { type RenderProp } from './Render.tsx';
export type CheckableState = {
    inputProps: {
        name: string | undefined;
        value: string | undefined;
        checked: boolean | undefined;
        'aria-checked': 'mixed' | undefined;
        disabled: boolean | undefined;
        'aria-label'?: string | undefined;
        'aria-labelledby'?: string | undefined;
        className: string;
    };
};
export interface CheckableProps extends Omit<ComponentProps<'span'>, 'children'>, GDSComponentProps<typeof CheckableMeta> {
    label: ReactNode | undefined;
    name: string | undefined;
    value: string | undefined;
    checked: boolean | 'indeterminate' | undefined;
    disabled: boolean | undefined;
    renderInput: RenderProp<CheckableState>;
}
export declare function CheckableRoot({ ref: passedRef, size, label, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, name, value, checked, disabled, className, style, renderInput, ...props }: CheckableProps): import("react/jsx-runtime").JSX.Element;
export declare namespace CheckableRoot {
    var displayName: string;
}
export declare function CheckableBox({ className, ...props }: ComponentProps<'span'>): import("react/jsx-runtime").JSX.Element;
export declare namespace CheckableBox {
    var displayName: string;
}
export interface CheckableLabelProps extends ComponentProps<'span'> {
    checked?: CheckableProps['checked'] | undefined;
    disabled?: CheckableProps['disabled'] | undefined;
    /**
     * Whether the focus ring should be on this wrapper element when the nested checkable is focused,
     * rather than on the nested checkable itself.
     *
     * @default true
     */
    focusRing?: boolean | undefined;
    /**
     * Allows you to compose the component with another component that renders a `label` element (e.g.
     * `<Card as="label" />`). Defaults to `<label />`, unless there is an ancestor `CheckableLabel`,
     * in which case it defaults to `<span />`.
     */
    render?: RenderProp | undefined;
}
export declare function CheckableLabel({ ref: passedRef, checked, disabled, focusRing, render, className, ...props }: CheckableLabelProps): import("react/jsx-runtime").JSX.Element;
export declare namespace CheckableLabel {
    var displayName: string;
}
//# sourceMappingURL=Checkable.parts.d.ts.map