import { CapabilitiesChangeInfo, ParticipantCapabilityName, ParticipantRole } from '@azure/communication-calling';
import { CapabalityChangedNotification, CapabilitiesChangeNotificationBarProps } from '../components/CapabilitiesChangedNotificationBar';
import { TrackedCapabilityChangedNotifications } from '../types/CapabilityChangedNotificationTracking';
/**
 * Create a record for when the notification was most recently dismissed for tracking dismissed notifications.
 *
 * @private
 */
export declare const useTrackedCapabilityChangedNotifications: (capabilitiesChangedAndRoleInfo: CapabilitiesChangedInfoAndRole) => CapabilitiesChangeNotificationBarProps;
/**
 * Take the set of active notifications, and filter to only those that are newer than previously dismissed notifications or have never been dismissed.
 *
 * @private
 */
export declare const filterLatestCapabilityChangedNotifications: (activeNotifications: CapabalityChangedNotification[], trackedNotifications: TrackedCapabilityChangedNotifications) => CapabalityChangedNotification[];
/**
 * Maintain a record of the most recently active notification for each capability name.
 *
 * @private
 */
export declare const updateTrackedCapabilityChangedNotificationsWithActiveNotifications: (existingTrackedNotifications: TrackedCapabilityChangedNotifications, activeNotifications: CapabalityChangedNotification[]) => TrackedCapabilityChangedNotifications;
/**
 * Create a record for when the notification was most recently dismissed for tracking dismissed notifications.
 *
 * @private
 */
export declare const trackCapabilityChangedNotificationAsDismissed: (capabilityName: ParticipantCapabilityName, trackedNotifications: TrackedCapabilityChangedNotifications) => TrackedCapabilityChangedNotifications;
interface CapabilitiesChangedInfoAndRole {
    capabilitiesChangeInfo?: CapabilitiesChangeInfo;
    participantRole?: ParticipantRole;
}
export {};
//# sourceMappingURL=TrackCapabilityChangedNotifications.d.ts.map