import { FC } from "react"; //#region src/dialog/dialog.types.d.ts type DialogState = "opening" | "opened" | "closing" | "closed"; type RequiredKeys = { [K in keyof T]-?: {} extends Pick ? never : K }[keyof T]; type AnyComponent = FC; type DialogComponentAndProps[0]> = RequiredKeys

extends never ? [C, P?] : [C, P]; interface DialogModelConfig { id?: string; component: AnyComponent; props?: React.ComponentProps; removeOnClosed?: boolean; initialState?: DialogState; } //#endregion //#region src/dialog/dialog.store.d.ts declare class DialogStore { dialogs: Map; get openDialogs(): DialogModel[]; get activeDialog(): DialogModel | undefined; constructor(); add(config: DialogModelConfig): DialogModel; open(...args: DialogComponentAndProps): DialogModel; close(closeImmediately?: boolean): void; } //#endregion //#region src/dialog/dialog.model.d.ts declare class DialogModel { readonly store: DialogStore; readonly config: DialogModelConfig; readonly id: string; readonly component: AnyComponent; readonly props?: React.ComponentProps; openedAt: number; previouslyFocusedElement: HTMLElement | null; state: DialogState; constructor(store: DialogStore, config: DialogModelConfig); close(closeImmediately?: boolean): void; open(openImmediately?: boolean): void; setState(state: DialogState): void; } //#endregion //#region src/dialog/components/dialogs.d.ts interface MobxDialogsProps { store?: DialogStore; } declare const MobxDialogs: (({ store }: MobxDialogsProps) => import("react/jsx-runtime").JSX.Element) & { displayName: string; }; interface MobxDialogProps { dialog: DialogModel; } declare const MobxDialog: (({ dialog }: MobxDialogProps) => import("react/jsx-runtime").JSX.Element) & { displayName: string; }; //#endregion //#region src/dialog/dialog.context.d.ts declare const dialogStoreContext: import("react").Context; declare const useDialogStore: () => DialogStore; declare const DialogStoreProvider: import("react").Provider; declare const dialogContext: import("react").Context; declare const useDialogContext: () => DialogModel; declare const useDialogContextIfAvailable: () => DialogModel | undefined; declare const DialogProvider: import("react").Provider; //#endregion //#region src/dialog/use-dialogs.d.ts declare const useDialogs: (store?: DialogStore) => DialogStore; //#endregion export { AnyComponent, DialogComponentAndProps, DialogModel, DialogModelConfig, DialogProvider, DialogState, DialogStore, DialogStoreProvider, MobxDialog, MobxDialogProps, MobxDialogs, MobxDialogsProps, dialogContext, dialogStoreContext, useDialogContext, useDialogContextIfAvailable, useDialogStore, useDialogs }; //# sourceMappingURL=dialog.d.mts.map