/// <reference types="react" />
import { OnRenderAvatarCallback } from '../types';
/**
 * @public
 * information required for each line of caption
 */
export type CaptionsInformation = {
    /**
     * unique id for each caption
     */
    id: string;
    /**
     * speaker's display name
     */
    displayName: string;
    /**
     * content of the caption
     */
    captionText: string;
    /**
     * id of the speaker
     */
    userId?: string;
    /**
     * timestamp when the caption was created
     * Please note that this value is essential for determining the order of captions and real time text messages
     * If you are using both captions and real time text, please ensure that the createdTimeStamp is populated
     */
    createdTimeStamp?: Date;
    /**
     * If caption is finalized
     */
    isFinalized?: boolean;
};
/**
 * @public
 * information required for each line of real time text
 */
export type RealTimeTextInformation = {
    /**
     * The id of the real time text.
     */
    id: number;
    /**
     * sender's display name
     */
    displayName: string;
    /**
     * id of the sender
     */
    userId?: string;
    /**
     * The real time text message.
     */
    message: string;
    /**
     * if the real time text received is partial
     */
    isTyping: boolean;
    /**
     * timestamp when the real time text was finalized
     */
    finalizedTimeStamp: Date;
    /**
     * If message originated from the local participant
     * default value is false
     */
    isMe?: boolean;
};
/**
 * @public
 * strings for captions banner
 */
export interface CaptionsBannerStrings {
    /**
     * Spinner text for captions banner
     */
    captionsBannerSpinnerText?: string;
    /**
     * Default text for RTT input text box
     */
    realTimeTextInputBoxDefaultText?: string;
    /**
     * Error message for RTT input text box when the size exceeds the limit 2000
     */
    realTimeTextInputErrorMessage?: string;
    /**
     * Real time text disclosure banner title
     */
    realTimeTextBannerTitle?: string;
    /**
     * Real time text disclosure banner content
     */
    realTimeTextBannerContent?: string;
    /**
     * Real time text disclosure banner link label
     */
    realTimeTextBannerLinkLabel?: string;
    /**
     * Title for the container when only captions is enabled
     */
    captionsOnlyContainerTitle?: string;
    /**
     * Title for the container when only real time text is enabled
     */
    realTimeTextOnlyContainerTitle?: string;
    /**
     * Title for the container when both captions and real time text is enabled
     */
    captionsAndRealTimeTextContainerTitle?: string;
    /**
     * Expand button aria label
     */
    expandButtonAriaLabel?: string;
    /**
     * Minimize button aria label
     */
    minimizeButtonAriaLabel?: string;
}
/**
 * @public
 * CaptionsBanner Component Props.
 */
export interface CaptionsBannerProps {
    /**
     * Array of captions to be displayed
     */
    captions: CaptionsInformation[];
    /**
     * Array of finalized and partial real time text messages
     */
    realTimeTexts?: {
        completedMessages?: RealTimeTextInformation[];
        currentInProgress?: RealTimeTextInformation[];
        myInProgress?: RealTimeTextInformation;
    };
    /**
     * Flag to indicate if captions are on
     */
    isCaptionsOn?: boolean;
    /**
     * Flag to indicate if real time text is on
     */
    isRealTimeTextOn?: boolean;
    /**
     * Flag to indicate if captions are being started
     * This is used to show spinner while captions are being started
     */
    startCaptionsInProgress?: boolean;
    /**
     * Optional callback to override render of the avatar.
     *
     * @param userId - user Id
     */
    onRenderAvatar?: OnRenderAvatarCallback;
    /**
     * Optional strings for the component
     */
    strings?: CaptionsBannerStrings;
    /**
     * Optional form factor for the component.
     * @defaultValue 'default'
     */
    formFactor?: 'default' | 'compact';
    /**
     * Optional options for the component.
     */
    captionsOptions?: {
        height: 'full' | 'default';
    };
    /**
     * Optional callback to send real time text.
     */
    onSendRealTimeText?: (text: string, isFinalized: boolean) => Promise<void>;
    /**
     * Latest local real time text
     */
    latestLocalRealTimeText?: RealTimeTextInformation;
}
/**
 * @public
 * A component for displaying a CaptionsBanner with user icon, displayName and captions text.
 */
export declare const CaptionsBanner: (props: CaptionsBannerProps) => JSX.Element;
//# sourceMappingURL=CaptionsBanner.d.ts.map