/*! * Ecctrl * https://github.com/pmndrs/ecctrl * * SPDX-FileCopyrightText: 2023-2026 Erdong Chen * SPDX-License-Identifier: MIT */ import * as THREE from "three"; import type { RapierRigidBody } from "@react-three/rapier"; export interface CustomGravityState { gravityField: (pos: THREE.Vector3) => THREE.Vector3; setGravityField: (fn: (pos: THREE.Vector3) => THREE.Vector3) => void; applyGravityField: (body: RapierRigidBody, timeStep: number) => void; } export declare const useCustomGravity: import("zustand").UseBoundStore, "subscribe"> & { subscribe: { (listener: (selectedState: CustomGravityState, previousSelectedState: CustomGravityState) => void): () => void; (selector: (state: CustomGravityState) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: { equalityFn?: ((a: U, b: U) => boolean) | undefined; fireImmediately?: boolean; } | undefined): () => void; }; }>;