// Generated by dts-bundle-generator v6.12.0 import React from 'react'; import { useEffect } from 'react'; export declare function useClickOutside(ref: React.RefObject | Array>, cb: (e: MouseEvent | TouchEvent) => void): void; export declare type Contact = { name: string[]; tel: string[]; }; declare enum ContactAlertType { NotAvailable = "NOT_AVAILABLE", HasNoNumber = "HAS_NO_NUMBER", MultipleNumbers = "MULTIPLE_NUMBERS" } export declare type UseContactBookArgs = { onFoundOneNumber?: (contact: Contact) => void; onFoundMultipleNumbers?: (contact: Contact) => void; onFoundNoNumbers?: () => void; onContactSelected?: (contact: Contact) => void; }; /** * Хук для работы с контактной книгой телефона. * Не все телефоны поддерживают такую фичу, она включается отдельно в настройках как экспериментальная. * * @param {Object} params - Объект с параметрами для хука * @param {Function} params.onFoundOneNumber - Функция, которая вызывается, когда найден один номер в контактах * @param {Function} params.onFoundMultipleNumbers - Функция, которая вызывается, когда найдено несколько номеров в контактах * @param {Function} params.onFoundNoNumbers - Функция, которая вызывается, когда не найдено номеров в контактах * @param {Function} params.onContactSelected - Функция, которая вызывается, когда контакт выбран * * @returns {Object} Возвращает объект с состоянием и функциями для работы с контактной книгой * * @returns {boolean} isContactPickerSupported - Флаг, указывающий, поддерживает ли устройство выбор контактов * @returns {Contact | null} availableContact - Доступный контакт (если он найден) * @returns {ContactAlertType | null} contactsAccessError - Ошибка доступа к контактам (если есть) * @returns {Function} getContactsHandler - Функция для получения контактов */ export declare function useContactBook({ onFoundOneNumber, onFoundMultipleNumbers, onFoundNoNumbers, onContactSelected, }: UseContactBookArgs): { isContactPickerSupported: boolean; availableContact: Contact | null; contactsAccessError: ContactAlertType | null; getContactsHandler: () => Promise; }; export declare type UseCountdownArgs = { endDate: Date; onStart?: () => void; onEnd?: () => void; }; export declare type UseCountdownHook = [ number ]; /** * Хук обратного отсчёта времени. * Возвращает оставшееся количество секунд до определённой даты. * * @param params.endDate - Дата окончания * @param params.onStart - Функция, которая будет вызвана при запуске счётчика * @param params.onEnd - Функция, которая будет вызвана при окончании счётчика */ export declare function useCountdown({ endDate, onStart, onEnd }: UseCountdownArgs): UseCountdownHook; export declare type DimensionObject = DOMRectReadOnly; export declare type UseDimensionsHook = [ (node: HTMLElement) => void, DimensionObject | undefined, HTMLElement | undefined ]; export interface UseDimensionsArgs { liveMeasure?: boolean; } export declare function useDimensions({ liveMeasure }?: UseDimensionsArgs): UseDimensionsHook; /** * https://github.com/facebook/react/issues/14099#issuecomment-440013892 * * @param {function} fn */ export declare function useEventCallback(fn: (...args: any) => any): (...args: any[]) => any; export declare type InputMethod = "keyboard" | "mouse"; /** * Хук устанавливает обработчик события на focusin и focusout * по конкретному типу события * @param node Элемент на котором установится обработчик (default = document) * @param inputMethod Если параметр не задан, установит обработчик по любому событию фокуса */ export declare function useFocus(ref: React.MutableRefObject | React.RefObject, inputMethod?: InputMethod): [ boolean ]; export declare function useKeydownOutside(ref: React.RefObject, cb: (e: KeyboardEvent) => void): void; export declare type Query = [ T, string ]; export declare type Params = Array>; export declare function useMedia(list: Params, defaultValue: T): T[]; export declare function usePrevious(value: T): T | undefined; export declare function useDidUpdateEffect(effect: () => void | (() => void), deps: unknown[]): void; export declare type UseImageLoadingStateArgs = { src: string; }; declare enum UseLoadingStates { LOADED = "loaded", LOADING = "loading", ERROR = "error" } /** * Возвращает результат загрузки изображения * @param params.src url изображения * @return результат загрузки (loading | loaded | error) */ export declare function useImageLoadingState({ src }: UseImageLoadingStateArgs): UseLoadingStates; export declare function useScrolledToBottomOfPage(cb: () => void, once?: boolean): void; export declare function useForceUpdate(): () => void; /** * Возвращаемый хуком метод, для определения доступности компонента. */ export declare type UseIsMountedResult = () => boolean; /** * Хук получения состояния доступности компонента. */ export declare const useIsMounted: () => UseIsMountedResult; export declare const useId: () => string; /** * Обновление состояния, только если компонент смонтирован * Устраняет утечку и варнинги */ export declare const useStateIfMounted: (initialValue: T | (() => T)) => [ T, React.Dispatch> ]; export declare const useLayoutEffect_SAFE_FOR_SSR: typeof useEffect; export {};