import type { FancyboxInstance, CarouselSlide, FancyboxOptions } from "@fancyapps/ui"; import { Fancybox } from "@fancyapps/ui/dist/fancybox/index.js"; import type { PropsWithChildren } from "react"; import type { TLocales } from "./config/locales.d.mts"; import type { TCallbackArg, TControls, TFbOptions, TModalCfg, TPresets, TModalId } from "./config/types/index.d.mts"; import type { IModal } from "../../components/modal/config/types/index.d.mts"; /** * Singleton. Плагин модальных окон. * Асинхронно загружает внутренние ресурсы и предоставляет методы для работы с модальными окнами. */ export declare class Modals { #private; /** * Статусы операций во время показа модального окна */ static reasons: { open: string; close: string; error: string; }; /** * Всплывающие события */ static bubbles: { open: string; beforeClose: string; close: string; confirm: string; cancel: string; loading: string; error: string; }; /** * Singleton-экземпляр плагина модальных окон. * @type {Modals|null} */ static instance: Modals | null; /** * Текущая ссылка на Fancybox API. * Допускает замену реализации при интеграции. * @type {typeof Fancybox} */ static fancybox: typeof Fancybox; /** * Базовые селекторы модальных блоков и интерактивных элементов. */ static selectors: { modal: string; handler: string; interaction: string; }; /** * Стандартная конфигурация Fancybox * @see https://fancyapps.com/fancybox/api/options */ static fancyboxDefaultCfg: TFbOptions; /** * Конфигурация модального окна по умолчанию. * Используется как база при открытии через `getOpen` и парсинге handler-конфига. * @type {TModalCfg} */ static modalDefaultCfg: TModalCfg; /** * Генерирует HTML-кнопку управления Fancybox-панелью. * @returns {Promise} */ static getControlsLayout: (type: TControls) => Promise; /** * Получает HTML-разметку модального окна на основе готового шаблона * @param preset{TPresets} * @param props{Object=} * @returns {IModal} */ static getLayoutPresetProps: (preset: TPresets, props?: PropsWithChildren) => IModal; constructor(); static set locales(locales: TLocales); static getInstance(id?: TModalId): { close: (ev?: Event, customHideClass?: string) => void; destroy: () => void; getCarousel: () => import("@fancyapps/ui").CarouselInstance | undefined; getContainer: () => HTMLElement | undefined; getId: () => string | number; getOptions: () => FancyboxOptions; getPlugins: () => Partial; getSlide: () => CarouselSlide | undefined; getState: () => import("@fancyapps/ui").FancyboxState; init: (userSlides?: Partial[], userOptions?: Partial) => FancyboxInstance | undefined; isCurrentSlide: (slide: CarouselSlide) => boolean; isTopMost: () => boolean; localize: (str: string, params?: Array<[string, any]>) => string; off: (event: FancyboxEvent, callback: (api: any, ...args: import("@fancyapps/ui").FancyboxEventArgs[FancyboxEvent]) => void) => FancyboxInstance; on: (event: FancyboxEvent, callback: (...args: [any, ...import("@fancyapps/ui").FancyboxEventArgs[FancyboxEvent]]) => void) => FancyboxInstance; toggleIdle(force?: boolean): void; } | null; static getClose(id: TModalId | undefined): Promise<{ reason: string; instance: FancyboxInstance | null; }>; static onClick({ instance, event, onAction }: TCallbackArg): void; static onRender({ instance, actions, slide, onAction, cfg, }: TCallbackArg): void; static onAfterOpen({ instance, actions, slide, onAction, cfg, }: TCallbackArg): void; static onBeforeClose({ instance, actions, onAction, cfg, event, customEvent, }: TCallbackArg): void; static onAfterClose({ instance, actions, onAction, cfg, event, }: TCallbackArg): void; static isOpen(id?: TModalId): boolean; static getOpen(cfg: Omit): Promise; bindEvents(): void; }