import { BivariantCallback, PickRequired } from "@ariakit/utils";
import * as Core from "@ariakit/components/checkbox/checkbox-store";
import { Store } from "@ariakit/react-store";
//#region src/checkbox/checkbox-store.d.ts
declare function useCheckboxStoreProps<T extends Core.CheckboxStore>(store: T, update: () => void, props: CheckboxStoreProps): T;
/**
 * Creates a checkbox store to conveniently manage a checkbox value,
 * whether it's a string, number, boolean, or an array of strings or numbers.
 * @see https://ariakit.com/components/checkbox
 * @example
 * ```jsx
 * const checkbox = useCheckboxStore({ defaultValue: true });
 * <Checkbox store={checkbox} />
 * ```
 */
declare function useCheckboxStore<T extends CheckboxStoreValue = CheckboxStoreValue>(props: PickRequired<CheckboxStoreProps<T>, "value" | "defaultValue">): CheckboxStore<T>;
declare function useCheckboxStore(props?: CheckboxStoreProps): CheckboxStore;
type CheckboxStoreValue = Core.CheckboxStoreValue;
type CheckboxStoreState<T extends CheckboxStoreValue = CheckboxStoreValue> = Core.CheckboxStoreState<T>;
type CheckboxStoreFunctions<T extends CheckboxStoreValue = CheckboxStoreValue> = Core.CheckboxStoreFunctions<T>;
interface CheckboxStoreOptions<T extends CheckboxStoreValue = CheckboxStoreValue> extends Core.CheckboxStoreOptions<T> {
  /**
   * A callback that gets called when the
   * [`value`](https://ariakit.com/reference/checkbox-provider#value) state
   * changes.
   * @example
   * function MyCheckbox({ value, onChange }) {
   *   const checkbox = useCheckboxStore({ value, setValue: onChange });
   * }
   */
  setValue?: BivariantCallback<(value: CheckboxStoreState<T>["value"]) => void>;
}
interface CheckboxStoreProps<T extends CheckboxStoreValue = CheckboxStoreValue> extends CheckboxStoreOptions<T>, Core.CheckboxStoreProps<T> {}
interface CheckboxStore<T extends CheckboxStoreValue = CheckboxStoreValue> extends CheckboxStoreFunctions<T>, Store<Core.CheckboxStore<T>> {}
//#endregion
export { CheckboxStoreState as a, useCheckboxStoreProps as c, CheckboxStoreProps as i, CheckboxStoreFunctions as n, CheckboxStoreValue as o, CheckboxStoreOptions as r, useCheckboxStore as s, CheckboxStore as t };
//# sourceMappingURL=checkbox-store-CVUINKKr.d.ts.map