/** Options for {@link useCounter}. @public */ export interface UseCounterOptions { /** Inclusive lower bound applied to the initial value and future updates. */ readonly min?: number; /** Inclusive upper bound applied to the initial value and future updates. */ readonly max?: number; } /** A number or an updater based on the current count. @public */ export type CounterUpdater = number | ((previous: number) => number); /** Stable actions returned by {@link useCounter}. @public */ export interface UseCounterActions { /** Increases the count by delta, which defaults to one. */ readonly increment: (delta?: number) => void; /** Decreases the count by delta, which defaults to one. */ readonly decrement: (delta?: number) => void; /** Sets the count directly or derives it from the current count. */ readonly set: (next: CounterUpdater) => void; /** Restores the first resolved count, clamped to the current bounds. */ readonly reset: () => void; } /** Count and stable actions returned by {@link useCounter}. @public */ export interface UseCounterResult extends UseCounterActions { /** The current bounded count. */ readonly count: number; } /** * Manages a bounded numeric value with stable increment, decrement, set, and * reset actions. * * @param initialValue - The initial count captured on the first render. * @param options - Optional inclusive numeric bounds. * @returns The current count and stable actions. * @public */ export declare function useCounter(initialValue?: number, options?: UseCounterOptions): UseCounterResult;