import { DataTypes } from "@etsoo/shared";
import React from "react";
/**
 * React utils
 */
export declare namespace ReactUtils {
    /**
     * Format input value
     * @param value Input value
     * @returns Formatted value
     */
    function formatInputValue(value: unknown): string | number | any[] | undefined;
    /**
     * Is safe click
     * @param event Mouse event
     * @returns Result
     */
    function isSafeClick(event: React.MouseEvent<HTMLElement>): boolean;
    /**
     * Trigger input change event
     * @param input Form input
     * @param value New value
     * @param cancelable Cancelable
     */
    function triggerChange(input: HTMLInputElement, value: string, cancelable?: boolean): void;
    /**
     * Update refs
     * @param refs Refs
     * @param data Data
     * @param callback Callback to update refs' value, return false continue to process
     */
    function updateRefs<D extends object, T = HTMLInputElement>(refs: Partial<DataTypes.DI<ReadonlyArray<keyof D & string>, React.RefObject<T | null>>>, data: D, callback?: ((item: T, value: D[keyof D & string]) => void | boolean) | keyof T): void;
    /**
     * Update data with refs
     * @param refs Refs
     * @param data Data
     * @param callback Callback to return new value
     * @param ignoreEmpty Ignore empty string or not, default true
     */
    function updateRefValues<D extends object, T = HTMLInputElement>(refs: Partial<DataTypes.DI<ReadonlyArray<keyof D & string>, React.RefObject<T | null>>>, data: D, callback?: ((item: T) => any) | keyof T, ignoreEmpty?: boolean): void;
}
