import { StoreApi } from 'zustand';
type Nullable<T> = T | null;
type EqualityChecker<T> = (a: T, b: T) => boolean;
type PropConfig<TStore, TProps, K extends keyof TStore> = {
    key: K;
    equals?: EqualityChecker<TStore[K]>;
    /**
     * Optional transformer function to apply to the prop value before storing.
     *
     * @example
     * // Single-prop transformation (data migration)
     * { key: 'timeRate', transform: migrateTimeRateSetting }
     *
     * @example
     * // Multi-prop transformation (computed value)
     * {
     *   key: 'padId',
     *   transform: (_, props) => getPadId({
     *     padId: props.padId,
     *     fracFleet: props.fracFleet
     *   })
     * }
     */
    transform?: (value: TProps[Extract<K, keyof TProps>], allProps: Partial<TProps>) => TStore[K] | undefined;
};
/**
 * A generic hook to sync prop values with a store, with custom equality checkers and transformers.
 */
export declare const useSyncProps: <TStore, TProps extends Partial<Record<keyof TStore, unknown>>, K extends keyof TStore>(store: Nullable<StoreApi<TStore>>, props: TProps, propsConfig: Array<PropConfig<TStore, TProps, K>>) => void;
export {};
//# sourceMappingURL=useSyncProps.d.ts.map