/** * Copyright 2024, SumUp Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { type ReactNode } from 'react'; import { type StackItem } from '../../hooks/useStack/index.js'; import { type ModalProps } from './Modal.js'; import type { ModalDialogComponent } from './createUseModal.js'; export type SetModalArgs = Omit; type ModalState = SetModalArgs & StackItem & { component: ModalDialogComponent; open: boolean; }; type ModalContextValue = { setModal: (modal: ModalState) => void; removeModal: (modal: ModalState) => void; }; export interface ModalProviderProps { /** * The ModalProvider should wrap your entire application. */ children: ReactNode; /** * An array of modals that should be displayed immediately, e.g. on page load. */ initialState?: ModalState[]; } export declare const ModalContext: import("react").Context>; export declare function ModalProvider({ children, initialState, ...defaultModalProps }: ModalProviderProps): import("react/jsx-runtime").JSX.Element; export {};