import { FunctionComponent, ReactElement, ReactNode } from 'react'; export interface ModalComponentProps { id: string; dismissModal: () => unknown; } export type ModalType = 'pop-up' | 'overlay' | 'banner' | 'message'; export interface Modal

{ id: string; type?: ModalType; component?: FunctionComponent

; props?: P; element?: ReactElement

; onDismiss?: () => unknown; isActive?: boolean; } export interface PushModalParams

= Partial> { component?: FunctionComponent

; props?: P; element?: ReactElement

; type?: ModalType; onDismiss?: () => unknown; } export type PushModalFunction

= Partial> = (params: PushModalParams

) => string | undefined; export interface ModalsState

= any> { modals: Modal[]; pushModal: PushModalFunction

; dismissModal: (id: string) => unknown; } export declare function useModals

= any>(): ModalsState

; export interface ModalContainerProps

extends ModalComponentProps { modal: Modal

; } export interface ModalsContextProps { children?: ReactNode; } export declare function ModalsContext({ children }: ModalsContextProps): ReactElement;