import * as React from 'react';

interface UseValidationLogProps {
    check: boolean;
    scope: string;
    message: string;
}
declare function useValidationLog({ check, scope, message }: UseValidationLogProps): void;

declare function useLazyRef<T>(fn: () => T): React.RefObject<T>;

declare const useIsomorphicLayoutEffect: typeof React.useLayoutEffect;

type PossibleRef<T> = React.Ref<T> | undefined;
/**
 * A utility to compose multiple refs together
 * Accepts callback refs and RefObject(s)
 */
declare function composeRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T>;
/**
 * A custom hook that composes multiple refs
 * Accepts callback refs and RefObject(s)
 */
declare function useComposedRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T>;

declare function useAsRef<T>(props: T): React.RefObject<T>;

declare function useIsMobile(): boolean;

export { composeRefs, useAsRef, useComposedRefs, useIsMobile, useIsomorphicLayoutEffect, useLazyRef, useValidationLog };
