import type * as React from 'react'; import type { SnackbarProps } from '../../components/Snackbar/Snackbar'; import type { HasDataAttribute, PartialFields, RequiredFields } from '../../types'; export type SnackbarsMap = Record; export type SnackbarData = RequiredFields, 'id' | 'placement'>; export declare namespace CustomSnackbar { type Props = AdditionalProps & Pick & { id: string; snackbarProps: SnackbarData; }; type Payload = { id?: string | undefined; component: React.ComponentType>; baseProps?: SnackbarApi.OpenProps | undefined; additionalProps?: AdditionalProps | undefined; }; } export declare namespace SnackbarApi { type OpenProps = PartialFields, 'onClosed'> & HasDataAttribute; type UpdateProps = Omit; type OpenReturn = { id: string; close: () => void; update: (props: UpdateProps) => void; onClose: (resolve?: () => R, reject?: VoidFunction) => Promise; }; type QueueStrategy = 'queue' | 'shift'; type OffsetY = number | string; interface Api { /** * Метод для открытия снекбара. Принимает конфиг */ open: (config: OpenProps) => OpenReturn; /** * Метод для открытия кастомного снекбара. */ openCustom: (config: CustomSnackbar.Payload | React.ComponentType>) => OpenReturn; /** * Метод для обновления свойств снекбара. Можно поменять любое свойство, кроме 'id' и 'placement'. */ update: (id: string, config: UpdateProps) => void; /** * Метод для закрытия снекбара по id. */ close: (id: string) => void; /** * Метод для закрытия всех снекбаров. */ closeAll: () => void; /** * Метод для изменения максимального числа открытых снекбаров в один момент. */ setLimit: (count: number) => void; /** * Метод для изменения поведения переполнения очереди снекбаров. */ setQueueStrategy: (behavior: QueueStrategy) => void; /** * Метод для изменения отступа контейнера снекбаров от верха. */ setOffsetYStart: (offset: OffsetY) => void; /** * Метод для изменения отступа контейнера снекбаров от низа. */ setOffsetYEnd: (offset: OffsetY) => void; /** * Метод для изменения z-index контейнера снекбаров. */ setZIndex: (zIndex: number | string) => void; } } export declare namespace UseSnackbar { interface Props { /** * Максимальное число открытых на одном `placement` снекбаров */ limit?: number | undefined; /** * Поведение переполнения очереди снекбаров: * - `"queue"` - снекбары не откроются, пока для них не появится место. * - `"shift"` - снекбары форсируют закрытие более старых снекбаров, чтобы освободить место. Значение по умолчанию. */ queueStrategy?: SnackbarApi.QueueStrategy | undefined; /** * Вертикальный отступ контейнера со снекбарами от верха. Полезно, когда на странице используется компонент `FixedLayout`. */ offsetYStart?: SnackbarApi.OffsetY | undefined; /** * Вертикальный отступ контейнера со снекбарами от низа. Полезно, когда на странице используется компонент `FixedLayout`. */ offsetYEnd?: SnackbarApi.OffsetY | undefined; /** * Свойство для установки стиля `z-index` на контейнере снекбаров. */ zIndex?: number | string | undefined; } type Return = [SnackbarApi.Api, React.ReactElement | null]; } export type SnackbarItem = Pick & { id: string; component: React.ComponentType; additionalProps?: any | undefined; snackbarProps: SnackbarData; }; export type CommonOnOpenPayload = Pick & { id: string; component: React.ComponentType>; snackbarProps?: SnackbarApi.OpenProps | undefined; additionalProps?: any | undefined; }; export { type SnackbarPlacement } from '../../components/Snackbar/types'; export { SnackbarProps }; //# sourceMappingURL=types.d.ts.map