import { type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
import type { HTMLButtonAttributes } from "svelte/elements";
import { Context } from "runed";
import type { BitsFocusEvent, BitsKeyboardEvent, BitsMouseEvent, OnChangeFn, RefAttachment, WithRefOpts } from "../../internal/types.js";
interface CheckboxGroupStateOpts extends WithRefOpts, ReadableBoxedValues<{
    name: string | undefined;
    disabled: boolean;
    required: boolean;
    readonly: boolean;
    onValueChange: OnChangeFn<string[]>;
}>, WritableBoxedValues<{
    value: string[];
}> {
}
export declare const CheckboxGroupContext: Context<CheckboxGroupState>;
export declare class CheckboxGroupState {
    static create(opts: CheckboxGroupStateOpts): CheckboxGroupState;
    readonly opts: CheckboxGroupStateOpts;
    readonly attachment: RefAttachment;
    labelId: string | undefined;
    constructor(opts: CheckboxGroupStateOpts);
    addValue(checkboxValue: string | undefined): void;
    removeValue(checkboxValue: string | undefined): void;
    readonly props: {
        readonly id: string;
        readonly role: "group";
        readonly "aria-labelledby": string | undefined;
        readonly "data-disabled": "" | undefined;
    };
}
interface CheckboxGroupLabelStateOpts extends WithRefOpts {
}
export declare class CheckboxGroupLabelState {
    static create(opts: CheckboxGroupLabelStateOpts): CheckboxGroupLabelState;
    readonly opts: CheckboxGroupLabelStateOpts;
    readonly group: CheckboxGroupState;
    readonly attachment: RefAttachment;
    constructor(opts: CheckboxGroupLabelStateOpts, group: CheckboxGroupState);
    readonly props: {
        readonly id: string;
        readonly "data-disabled": "" | undefined;
    };
}
interface CheckboxRootStateOpts extends WithRefOpts, ReadableBoxedValues<{
    disabled: boolean;
    required: boolean;
    readonly: boolean;
    name: string | undefined;
    value: string | undefined;
    type: HTMLButtonAttributes["type"];
}>, WritableBoxedValues<{
    checked: boolean;
    indeterminate: boolean;
}> {
}
export declare class CheckboxRootState {
    #private;
    static create(opts: CheckboxRootStateOpts, group?: CheckboxGroupState | null): CheckboxRootState;
    readonly opts: CheckboxRootStateOpts;
    readonly group: CheckboxGroupState | null;
    readonly trueName: string | undefined;
    readonly trueRequired: boolean;
    readonly trueDisabled: boolean;
    readonly trueReadonly: boolean;
    readonly attachment: RefAttachment;
    constructor(opts: CheckboxRootStateOpts, group: CheckboxGroupState | null);
    onkeydown(e: BitsKeyboardEvent): void;
    onclick(e: BitsMouseEvent): void;
    readonly snippetProps: {
        checked: boolean;
        indeterminate: boolean;
    };
    readonly props: {
        readonly id: string;
        readonly role: "checkbox";
        readonly type: "reset" | "submit" | "button" | null | undefined;
        readonly disabled: boolean;
        readonly "aria-checked": "true" | "false" | "mixed";
        readonly "aria-required": "true" | "false";
        readonly "aria-readonly": "true" | "false";
        readonly "data-disabled": "" | undefined;
        readonly "data-readonly": "" | undefined;
        readonly "data-state": "checked" | "indeterminate" | "unchecked";
        readonly onclick: (e: BitsMouseEvent) => void;
        readonly onkeydown: (e: BitsKeyboardEvent) => void;
    };
}
export declare class CheckboxInputState {
    static create(): CheckboxInputState;
    readonly root: CheckboxRootState;
    readonly trueChecked: boolean;
    readonly shouldRender: boolean;
    constructor(root: CheckboxRootState);
    onfocus(_: BitsFocusEvent): void;
    readonly props: {
        readonly type: "checkbox";
        readonly checked: boolean;
        readonly disabled: boolean;
        readonly required: boolean;
        readonly name: string | undefined;
        readonly value: string | undefined;
        readonly readonly: boolean;
        readonly onfocus: (_: BitsFocusEvent) => void;
    };
}
export {};
