///
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;
/**
* 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