import { Store } from "@ariakit/react-store";
import * as Core from "@ariakit/components/disclosure/disclosure-store";
//#region src/disclosure/disclosure-store.d.ts
declare function useDisclosureStoreProps<T extends Core.DisclosureStore>(store: T, update: () => void, props: DisclosureStoreProps): T & {
  disclosure: DisclosureStore | null | undefined;
};
/**
 * Creates a disclosure store to control the state of
 * [Disclosure](https://ariakit.com/components/disclosure) components.
 * @see https://ariakit.com/components/disclosure
 * @example
 * ```jsx
 * const disclosure = useDisclosureStore();
 *
 * <Disclosure store={disclosure}>Disclosure</Disclosure>
 * <DisclosureContent store={disclosure}>Content</DisclosureContent>
 * ```
 */
declare function useDisclosureStore(props?: DisclosureStoreProps): DisclosureStore;
interface DisclosureStoreState extends Core.DisclosureStoreState {}
interface DisclosureStoreFunctions extends Pick<DisclosureStoreOptions, "disclosure">, Omit<Core.DisclosureStoreFunctions, "disclosure"> {}
interface DisclosureStoreOptions extends Core.DisclosureStoreOptions {
  /**
   * A callback that gets called when the
   * [`open`](https://ariakit.com/reference/disclosure-provider#open) state
   * changes.
   * @example
   * const [open, setOpen] = useState(false);
   * const disclosure = useDisclosureStore({ open, setOpen });
   */
  setOpen?: (open: DisclosureStoreState["open"]) => void;
  /**
   * A callback that gets called when the `mounted` state changes.
   * @example
   * const [mounted, setMounted] = useState(false);
   * const disclosure = useDisclosureStore({ setMounted });
   */
  setMounted?: (mounted: DisclosureStoreState["mounted"]) => void;
  /**
   * A reference to another disclosure store that controls another disclosure
   * component to keep them in sync. Element states like `contentElement` and
   * `disclosureElement` won't be synced. For that, use the
   * [`store`](https://ariakit.com/reference/disclosure-provider#store) prop
   * instead.
   *
   * Live examples:
   * - [Command Menu](https://ariakit.com/examples/dialog-combobox-command-menu)
   * - [Command Menu with
   *   Tabs](https://ariakit.com/examples/dialog-combobox-tab-command-menu)
   */
  disclosure?: DisclosureStore | null;
}
interface DisclosureStoreProps extends DisclosureStoreOptions, Omit<Core.DisclosureStoreProps, "disclosure"> {}
interface DisclosureStore extends DisclosureStoreFunctions, Omit<Store<Core.DisclosureStore>, "disclosure"> {}
//#endregion
export { DisclosureStoreState as a, DisclosureStoreProps as i, DisclosureStoreFunctions as n, useDisclosureStore as o, DisclosureStoreOptions as r, useDisclosureStoreProps as s, DisclosureStore as t };
//# sourceMappingURL=disclosure-store-DsqFEX-x.d.ts.map