/**
* This model hook uses {@link usePopupModel} and pre-configures behaviors that are required for an
* accessible modal. `useModalModel` should be used in most cases, but if you require custom
* behaviors, you can use `usePopupModel` directly. Be sure to add proper popup behaviors to ensure
* the modal is accessible.
*
* The following behaviors are added to the `PopupModel`:
* - {@link useInitialFocus}
* - {@link useReturnFocus}
* - {@link useCloseOnOverlayClick}
* - {@link useCloseOnEscape}
* - {@link useFocusTrap}
* - {@link useAssistiveHideSiblings}
* - {@link useDisableBodyScroll}
*
* You can pass the Modal model config either directly to the `Modal` component or to the
* `useModalModel` hook, but not both. A `model` prop always takes precedence over the config passed
* to the `useModalModel` hook. If no `model` is passed to a `Modal` component, a `ModalModel` will
* be created for you. Creating your own model hoists the modal's state to the level of your
* component and allows you to access the model's state and events.
*
* ```tsx
* const model = useModalModel(config);
*
*
* // ...
*
* ```
*/
export declare const useModalModel: ((config?: (Partial<{
returnFocusRef: import("react").RefObject | undefined;
initialFocusRef: import("react").RefObject | undefined;
id: string;
initialVisibility: import("../../..").Visibility;
}> & {
onUpdatePlacement?: ((data: {
placement: import("@popperjs/core").Placement;
}, prevState: {
stackRef: import("react").RefObject;
targetRef: import("react").RefObject;
initialFocusRef: import("react").RefObject | undefined;
returnFocusRef: import("react").RefObject | undefined;
placement: import("@popperjs/core").Placement;
id: string;
visibility: "hidden" | "visible";
}) => void) | undefined;
onShow?: ((data: Event | import("react").SyntheticEvent | undefined, prevState: {
stackRef: import("react").RefObject;
targetRef: import("react").RefObject;
initialFocusRef: import("react").RefObject | undefined;
returnFocusRef: import("react").RefObject | undefined;
placement: import("@popperjs/core").Placement;
id: string;
visibility: "hidden" | "visible";
}) => void) | undefined;
onHide?: ((data: Event | import("react").SyntheticEvent | undefined, prevState: {
stackRef: import("react").RefObject;
targetRef: import("react").RefObject;
initialFocusRef: import("react").RefObject | undefined;
returnFocusRef: import("react").RefObject | undefined;
placement: import("@popperjs/core").Placement;
id: string;
visibility: "hidden" | "visible";
}) => void) | undefined;
} & {
shouldUpdatePlacement?: ((data: {
placement: import("@popperjs/core").Placement;
}, state: {
stackRef: import("react").RefObject;
targetRef: import("react").RefObject;
initialFocusRef: import("react").RefObject | undefined;
returnFocusRef: import("react").RefObject | undefined;
placement: import("@popperjs/core").Placement;
id: string;
visibility: "hidden" | "visible";
}) => boolean) | undefined;
shouldShow?: ((data: Event | import("react").SyntheticEvent | undefined, state: {
stackRef: import("react").RefObject;
targetRef: import("react").RefObject;
initialFocusRef: import("react").RefObject | undefined;
returnFocusRef: import("react").RefObject | undefined;
placement: import("@popperjs/core").Placement;
id: string;
visibility: "hidden" | "visible";
}) => boolean) | undefined;
shouldHide?: ((data: Event | import("react").SyntheticEvent | undefined, state: {
stackRef: import("react").RefObject;
targetRef: import("react").RefObject;
initialFocusRef: import("react").RefObject | undefined;
returnFocusRef: import("react").RefObject | undefined;
placement: import("@popperjs/core").Placement;
id: string;
visibility: "hidden" | "visible";
}) => boolean) | undefined;
}) | undefined) => {
state: {
stackRef: import("react").RefObject;
targetRef: import("react").RefObject;
initialFocusRef: import("react").RefObject | undefined;
returnFocusRef: import("react").RefObject | undefined;
placement: import("@popperjs/core").Placement;
id: string;
visibility: "hidden" | "visible";
};
events: {
updatePlacement(data: {
placement: import("@popperjs/core").Placement;
}): void;
show(event?: Event | import("react").SyntheticEvent | undefined): void;
hide(event?: Event | import("react").SyntheticEvent | undefined): void;
};
}) & import("@workday/canvas-kit-react/common").ModelExtras<{
returnFocusRef: import("react").RefObject | undefined;
initialFocusRef: import("react").RefObject | undefined;
id: string;
initialVisibility: import("../../..").Visibility;
}, {}, {
stackRef: import("react").RefObject;
targetRef: import("react").RefObject;
initialFocusRef: import("react").RefObject | undefined;
returnFocusRef: import("react").RefObject | undefined;
placement: import("@popperjs/core").Placement;
id: string;
visibility: "hidden" | "visible";
}, {
updatePlacement(data: {
placement: import("@popperjs/core").Placement;
}): void;
show(event?: Event | import("react").SyntheticEvent | undefined): void;
hide(event?: Event | import("react").SyntheticEvent | undefined): void;
}, {
state: {
stackRef: import("react").RefObject;
targetRef: import("react").RefObject;
initialFocusRef: import("react").RefObject | undefined;
returnFocusRef: import("react").RefObject | undefined;
placement: import("@popperjs/core").Placement;
id: string;
visibility: "hidden" | "visible";
};
events: {
updatePlacement(data: {
placement: import("@popperjs/core").Placement;
}): void;
show(event?: Event | import("react").SyntheticEvent | undefined): void;
hide(event?: Event | import("react").SyntheticEvent | undefined): void;
};
}>;
//# sourceMappingURL=useModalModel.d.ts.map