import * as Core from "@ariakit/core/collection/collection-store"; import type { BivariantCallback, PickRequired } from "@ariakit/core/utils/types"; import type { Store } from "../utils/store.tsx"; export declare function useCollectionStoreProps(store: T, update: () => void, props: CollectionStoreProps): T; /** * Creates a collection store to control * [Collection](https://ariakit.com/components/collection) components. * @see https://ariakit.com/components/collection * @example * ```jsx * const collection = useCollectionStore(); * * * Item * Item * Item * * ``` */ export declare function useCollectionStore(props: PickRequired, "items" | "defaultItems">): CollectionStore; export declare function useCollectionStore(props?: CollectionStoreProps): CollectionStore; export interface CollectionStoreItem extends Core.CollectionStoreItem { } export interface CollectionStoreState extends Core.CollectionStoreState { } export interface CollectionStoreFunctions extends Core.CollectionStoreFunctions { } export interface CollectionStoreOptions extends Core.CollectionStoreOptions { /** * A callback that gets called when the * [`items`](https://ariakit.com/reference/collection-provider#items) state * changes. * @example * const [items, setItems] = useState([]); * const collection = useCollectionStore({ items, setItems }); */ setItems?: BivariantCallback<(items: CollectionStoreState["items"]) => void>; } export interface CollectionStoreProps extends CollectionStoreOptions, Core.CollectionStoreProps { } export interface CollectionStore extends CollectionStoreFunctions, Store> { }