import { NotificationLinkType } from './notification-link-type';
import { NotificationState } from './notification-state';
/**
 * Type definition of Client Notification.
 */
export declare enum ClientNotificationType {
    /**
     * Display at the notification center. Using the ID, it can update the single notification.
     */
    NotificationCenter = 0,
    /**
     * @deprecated
     *
     * All notification should go through NotificationCenter
     * Display as alert bar. ID will be ignored, and doesn't retain the notification instance and state.
     */
    AlertBar = 1
}
/**
 * The notification produced by the client code as instant notification.
 */
export interface ClientNotification {
    /**
     * @deprecated
     * There is no longer a distinction between NotificationCenter and AlertBar notifications
     */
    type?: ClientNotificationType;
    /**
     * The session id (or instance id).
     */
    id: string;
    /**
     * The state of notification.
     */
    state: NotificationState;
    /**
     * The title of work item to display user. (localized)
     */
    title: string;
    /**
     * @deprecated
     *
     * This field can be removed
     */
    description?: string;
    /**
     * The message. (localized)
     */
    message: string;
    /**
     * Possible solution to address error. (localized)
     */
    solutionMessage?: string;
    /**
     * The success link to navigate to the object view. (optional)
     * At default, it brings to the home page of the module.
     * The path is relative to from the manifest opened point unless linkType is specified
     */
    link?: string;
    /**
     * The text to show up on the notification link text ex: "Go to <linkText> on sme-xyz.domain.com"
     * By default the text will be the auto detected source name like "Files"
     */
    linkText?: string;
    /**
     * the type of notification link. Default behavior is RelativeToTool
     */
    linkType?: NotificationLinkType;
}
