/// <reference types="react" />
import { IMessageBarProps } from '@fluentui/react';
import { CapabilitiesChangedReason, ParticipantCapabilityName, ParticipantRole } from '@azure/communication-calling';
/**
 * @private
 */
export interface CapabilitiesChangeNotificationBarProps extends IMessageBarProps {
    capabilitiesChangedNotifications: CapabalityChangedNotification[];
    onDismissNotification: (notification: CapabalityChangedNotification) => void;
}
/**
 * @private
 */
export interface CapabalityChangedNotification {
    /**
     * Name of capability
     */
    capabilityName: ParticipantCapabilityName;
    /**
     * Is capability now available
     */
    isPresent: boolean;
    /**
     * Reason capability was changed
     */
    changedReason?: CapabilitiesChangedReason;
    /**
     * Role of participant when capability changed
     */
    role?: ParticipantRole;
    /**
     * The latest timestamp when this notification was observed.
     *
     * When available, this is used to track notifications that have already been seen and dismissed
     * by the user.
     */
    timestamp?: Date;
}
/**
 * Notification bar for capabilities changed
 * @private
 */
export declare const CapabilitiesChangedNotificationBar: (props: CapabilitiesChangeNotificationBarProps) => JSX.Element;
/**
 * Strings for capability changed notification
 * @public
 */
export interface CapabilityChangedNotificationStrings {
    /**
     * Strings for 'turnVideoOn' capability
     */
    turnVideoOn?: {
        /**
         * Notification message shown to the user when capability to turn video on is lost due to a meeting option change
         */
        lostDueToMeetingOption?: string;
        /**
         * Notification message shown to the user when capability to turn video on is granted due to a meeting option change
         */
        grantedDueToMeetingOption?: string;
    };
    /**
     * Strings for 'unmuteMic' capability
     */
    unmuteMic?: {
        /**
         * Notification message shown to the user when capability to unmute mic is lost due to a meeting option change
         */
        lostDueToMeetingOption?: string;
        /**
         * Notification message shown to the user when capability to unmute mic is granted due to a meeting option change
         */
        grantedDueToMeetingOption?: string;
    };
    /**
     * Strings for 'shareScreen' capability
     */
    shareScreen?: {
        /**
         * Notification message shown to the user when capability to share screen is lost due to a role change to Attendeee
         */
        lostDueToRoleChangeToAttendee?: string;
        /**
         * Notification message shown to the user when capability to share screen is granted due to a role change to Presenter
         */
        grantedDueToRoleChangeToPresenter?: string;
    };
    /**
     * Strings for hidden attendee names capability
     */
    hideAttendeeNames?: {
        /**
         * Notification message shown to the user when capability to view attendee names is lost due to a meeting option change for Attendee
         */
        hideAttendeeNameAttendee?: string;
        /**
         * Notification message shown to the user when capability to view attendee names is lost due to a meeting option change for Presenter
         */
        hideAttendeeNamePresenter?: string;
    };
}
//# sourceMappingURL=CapabilitiesChangedNotificationBar.d.ts.map