import { IIconProps, MessageBarType } from '@fluentui/react';
import { ActiveErrorMessage, ErrorType } from './ErrorBar';
import { SupportedSpokenLanguage } from '../types';
import { ActiveNotification, NotificationType } from './NotificationStack';
import { VideoTileStrings } from './VideoTile';
/**
 * @private
 *
 * @param fileName
 * @param length
 * @returns string
 */
export declare const truncatedFileName: (fileName: string, length: number) => string;
/**
 * @private
 *
 * @param fileName
 * @returns string
 */
export declare const extension: (fileName: string) => string;
/**
 * @private
 */
export interface DismissedError {
    type: ErrorType;
    dismissedAt: Date;
    activeSince?: Date;
}
/**
 * @private
 */
export interface DismissedNotification {
    type: NotificationType;
    dismissedAt: Date;
    activeSince?: Date;
}
/**
 * @private
 * @param dismissedErrors
 * @param toDismiss
 * @returns DismissedError[]
 * Always returns a new Array so that the state variable is updated, trigerring a render.
 */
export declare const dismissError: (dismissedErrors: DismissedError[], toDismiss: ActiveErrorMessage) => DismissedError[];
/**
 * @private
 * @param activeErrorMessages
 * @param dismissedErrors
 * @returns DismissedError[]
 *  Returns a new Array if and only if contents change, to avoid re-rendering when nothing was dropped.
 */
export declare const dropDismissalsForInactiveErrors: (activeErrorMessages: ActiveErrorMessage[], dismissedErrors: DismissedError[]) => DismissedError[];
/**
 * @private
 * @param dismissedNotifications
 * @param toDismiss
 * @returns DismissedNotification[]
 * Always returns a new Array so that the state variable is updated, trigerring a render.
 */
export declare const dismissNotification: (dismissedNotifications: DismissedNotification[], toDismiss: ActiveNotification) => DismissedNotification[];
/**
 * @private
 * @param activeNotifications
 * @param dismissedNotifications
 * @returns DismissedError[]
 *  Returns a new Array if and only if contents change, to avoid re-rendering when nothing was dropped.
 */
export declare const dropDismissalsForInactiveNotifications: (activeNotifications: ActiveNotification[], dismissedNotifications: DismissedNotification[]) => DismissedNotification[];
/**
 * @private
 * @param activeErrorMessages
 * @param dismissedErrors
 * @returns ActiveErrorMessage[]
 */
export declare const errorsToShow: (activeErrorMessages: ActiveErrorMessage[], dismissedErrors: DismissedError[], mountTimestamp?: Date) => ActiveErrorMessage[];
/**
 * @private
 * @param activeNotifications
 * @param dismissedNotifications
 * @returns ActiveNotification[]
 */
export declare const notificationsToShow: (activeNotifications: ActiveNotification[], dismissedNotifications: DismissedNotification[], mountTimestamp?: Date) => ActiveNotification[];
/**
 * @private
 * @param errorType
 * @returns MessageBarType
 */
export declare const messageBarType: (errorType: ErrorType) => MessageBarType;
/**
 * @private
 * @param errorType
 * @returns IIconProps | undefined
 */
export declare const messageBarIconProps: (errorType: ErrorType) => IIconProps | undefined;
/**
 * @private
 */
export declare const customIconName: Partial<{
    [key in ErrorType]: string;
}>;
/**
 * @private
 * @param NotificationType
 * @returns IIconProps | undefined
 */
export declare const NotificationIconProps: (notificationType: NotificationType) => IIconProps | undefined;
/**
 * @private
 */
export declare const customNotificationIconName: Partial<{
    [key in NotificationType]: string;
}>;
/**
 * @private
 */
export declare const isValidString: (string: string | undefined) => string is string;
/**
 * Chunk an array into rows of a given size.
 * @private
 */
export declare function chunk<T>(options: T[], itemsPerRow: number): T[][];
/**
 * @private
 */
export declare const defaultSpokenLanguage: SupportedSpokenLanguage;
/**
 * Determine if the press of the enter key is from a composition session or not (Safari only)
 *
 * @private
 */
export declare const isEnterKeyEventFromCompositionSession: (e: KeyboardEvent) => boolean;
/**
 * @private
 */
export declare const nullToUndefined: <T>(value: T | null) => T | undefined;
/**
 * @private
 */
export declare const formatMoreButtonAriaDescription: (displayName?: string, isMuted?: boolean, isHandRaised?: boolean, state?: string, isSpeaking?: boolean, strings?: VideoTileStrings, isMicDisabled?: boolean, isCameraDisabled?: boolean) => string;
//# sourceMappingURL=utils.d.ts.map