/** @packageDocumentation
 * @module Notification
 */
import type { BeDuration } from "@itwin/core-bentley";
import type { Point2d, XAndY } from "@itwin/core-geometry";
import type { OutputMessagePriority } from "@itwin/core-frontend";
import { NotifyMessageDetails, OutputMessageAlert, OutputMessageType } from "@itwin/core-frontend";
import { RelativePosition } from "@itwin/appui-abstract";
import type { MessageType } from "@itwin/core-react";
/** Types for message in [[MessageManager]]
 * @public
 */
export type NotifyMessageType = MessageType;
/** Types for NotifyMessageDetails.
 * @public
 */
export type NotifyMessageDetailsType = NotifyMessageDetails | ReactNotifyMessageDetails;
/** Describes a message to be displayed to the user and adds support for React components in messages.
 * @public
 */
export declare class ReactNotifyMessageDetails {
    priority: OutputMessagePriority;
    briefMessage: NotifyMessageType;
    detailedMessage?: MessageType | undefined;
    msgType: OutputMessageType;
    openAlert: OutputMessageAlert;
    private _notifyMessageDetails;
    /** @internal */
    get messageDetails(): NotifyMessageDetails;
    /** Amount of time a Toast message is displayed */
    get displayTime(): BeDuration;
    set displayTime(duration: BeDuration);
    /** Anchor viewport for a Pointer message */
    get viewport(): HTMLElement | undefined;
    /** Point for a Pointer message */
    get displayPoint(): Point2d | undefined;
    /** Relative position for a Pointer message */
    get relativePosition(): RelativePosition;
    /** Anchor input field for an Input Field message */
    get inputField(): HTMLElement | undefined;
    /** Constructor
     *  @param priority           The priority this message should be accorded by the NotificationManager.
     *  @param briefMessage       A short message that conveys the simplest explanation of the issue.
     *  @param detailedMessage    A comprehensive message that explains the issue in detail and potentially offers a solution.
     *  @param msgType            The type of message.
     *  @param openAlert          Whether an alert box should be displayed or not, and if so what kind.
     */
    constructor(priority: OutputMessagePriority, briefMessage: NotifyMessageType, detailedMessage?: MessageType | undefined, msgType?: OutputMessageType, openAlert?: OutputMessageAlert);
    /** Set OutputMessageType.Pointer message details.
     * @param viewport            Viewport over which to display the Pointer type message.
     * @param displayPoint        Point at which to display the Pointer type message.
     * @param relativePosition    Position relative to displayPoint at which to display the Pointer type message.
     */
    setPointerTypeDetails(viewport: HTMLElement, displayPoint: XAndY, relativePosition?: RelativePosition): void;
    /** Set OutputMessageType.InputField message details.
     * @param inputField          Input field that message pertains. The message will be shown just below this input field element.
     */
    setInputFieldTypeDetails(inputField: HTMLElement): void;
}
/** ReactNotifyMessageDetails type guard.
 * @internal
 */
export declare const isReactNotifyMessageDetails: (details: any) => details is ReactNotifyMessageDetails;
//# sourceMappingURL=ReactNotifyMessageDetails.d.ts.map