import type { EmbedVouchAnswer, EmbedVouchCaption } from '../types'; type EmbedDisplayNameOptions = { hideContactName?: boolean; hideCompanyName?: boolean; }; type JoinEmbedDisplayNameOptions = EmbedDisplayNameOptions & { separator?: string; }; type GetRecorderUrlOptions = { url: string; id: string; type: string; preview: boolean; useRearCamera: boolean; isButton?: boolean; query?: string; }; /** * Get embed customer and contact name from a vouch * * @param {EmbedVouchAnswer} answer Optional * @param {NameOptions} options Optional * @returns {string[]} */ export declare function getEmbedCustomerName(answer?: EmbedVouchAnswer, options?: EmbedDisplayNameOptions): string[]; /** * Join embed customer name and contact name of a vouch * * @param {EmbedVouchAnswer} answer Optional * @param {JoinNameOptions} options Optional * @returns {string} */ export declare function joinEmbedCustomerName(answer?: EmbedVouchAnswer, options?: JoinEmbedDisplayNameOptions): string; /** * * @param {string | Array} ordinal e.g. 1,2,3,4 or 1,2,4-8,12 * @returns {Array} A list of integer in ascending order */ export declare function normalizeOrdinal(ordinal: string | Array): Array; /** * Detect Safari browser * @returns boolean */ export declare function isSafari(): boolean; /** * Detect iOS devices * @returns boolean */ export declare function iOS(): boolean; /** * Detect iPadOS devices * @returns boolean */ export declare function iPadOS(): boolean; /** * Convert duration seconds into HH:MM:SS format * * @param {number} duration seconds, e.g. 30 * @returns {string} 0:30 */ export declare function formatDuration(seconds: number, options?: { includeMs?: boolean; }): string; /** * * @param {GetRecorderUrlOptions} options * @returns {string} */ export declare function getRecorderUrl({ url, id, type, preview, useRearCamera, isButton, query }: GetRecorderUrlOptions): string; /** * * Providing the function with answer object and orientation, it retrieves answer.aspectRatio (fallback 3:5 by default) * and convert aspect ratio according to the orientation. e.g. if 3:5 and landscape then return 5:3 * This is primarily for embed to render corresponding aspect ratio based on orientation property. * * @param {EmbedVouchAnswer} answer * @param {string} orientation (optional) * @param {boolean} toClassNameFormat (optional) convert aspect ration string into `aspect-3-4` class name * @returns {string} e.g. "3:5" or "aspect-3-5" */ export declare function getAnswerAspectByOrientation(answer: EmbedVouchAnswer): string; export declare function getAnswerAspectByOrientation(answer: EmbedVouchAnswer, orientation: string): string; export declare function getAnswerAspectByOrientation(answer: EmbedVouchAnswer, toClassNameFormat: boolean): string; export declare function getAnswerAspectByOrientation(answer: EmbedVouchAnswer, orientation: string, toClassNameFormat: boolean): string; /** * * Providing the function with a captionsURL, the function retrieves the vtt file and converts it into an * array of captions that includes the start, end and text of the captions. * * @param {string} captionsURL * @returns {Array} */ export declare function getCaptionsArray(captionsURL: string): Promise>; /** * * Use Set() to deduplicate items, return type is decided by the * 1st argument. i.e. dedup('1,2,3,4', [1,2,3,4]) returns '1,2,3,4' * */ export declare function dedup(...args: Array): string; export declare function dedup(...args: Array>): Array; export declare function dedup(...args: Array): unknown; export declare function dedup(...args: Array>): Array; export declare function isTrue(value: string | boolean): boolean; type DispatchFn = (event: string, detail?: any) => void; export declare function createDispatcher(component: HTMLElement): DispatchFn; export {};