import * as Core from "@ariakit/core/composite/composite-store"; import type { PickRequired } from "@ariakit/core/utils/types"; import type { CollectionStoreFunctions, CollectionStoreOptions, CollectionStoreState } from "../collection/collection-store.ts"; import type { Store } from "../utils/store.tsx"; export declare function useCompositeStoreOptions(props: T): { id: string | undefined; } & T; export declare function useCompositeStoreProps(store: T, update: () => void, props: CompositeStoreProps): T; /** * Creates a composite store to control the state of * [Composite](https://ariakit.com/components/composite) components. * @see https://ariakit.com/components/composite * @example * ```jsx * const composite = useCompositeStore(); * * * Item * Item * Item * * ``` */ export declare function useCompositeStore(props: PickRequired, "items" | "defaultItems">): CompositeStore; export declare function useCompositeStore(props?: CompositeStoreProps): CompositeStore; export interface CompositeStoreItem extends Core.CompositeStoreItem { } export interface CompositeStoreState extends Core.CompositeStoreState, CollectionStoreState { } export interface CompositeStoreFunctions extends Core.CompositeStoreFunctions, CollectionStoreFunctions { } export interface CompositeStoreOptions extends Core.CompositeStoreOptions, CollectionStoreOptions { /** * A callback that gets called when the * [`activeId`](https://ariakit.com/reference/composite-provider#activeid) * state changes. */ setActiveId?: (activeId: CompositeStoreState["activeId"]) => void; } export interface CompositeStoreProps extends CompositeStoreOptions, Core.CompositeStoreProps { } export interface CompositeStore extends CompositeStoreFunctions, Store> { }