import { Dispatch, SetStateAction } from 'react';
type UseSyncedStateOptions<T> = {
    /**
     * A callback function that is triggered when the state is updated via the local setter,
     * but not through synchronization with `syncValue`.
     */
    onLocalStateChange?: (state: T) => void;
    /**
     * A custom comparison function to determine if the external `syncValue` is different
     * from the current state. The default function performs a deep equality check using `isEqual`.
     */
    syncCompareFn?: (currentState: T, syncValue: T) => boolean;
};
/**
 * A custom React hook that behaves like the regular `useState`, but also synchronizes the state
 * with an external `syncValue`.
 */
export declare function useSyncedState<T>(syncValue: T, { onLocalStateChange, syncCompareFn }?: UseSyncedStateOptions<T>): [T, Dispatch<SetStateAction<T>>];
export {};
