import { AdaptiveCardVersion, SdkError } from '../public/interfaces'; import * as pages from '../public/pages/pages'; import { IBaseRuntime } from '../public/runtime'; /** * @internal * Limited to Microsoft-internal use */ export declare function getGenericOnCompleteHandler(errorMessage?: string): (success: boolean, reason?: string) => void; /** * @hidden * Compares SDK versions. * * @param v1 - first version * @param v2 - second version * @returns NaN in case inputs are not in right format * -1 if v1 < v2 * 1 if v1 > v2 * 0 otherwise * @example * compareSDKVersions('1.2', '1.2.0') returns 0 * compareSDKVersions('1.2a', '1.2b') returns NaN * compareSDKVersions('1.2', '1.3') returns -1 * compareSDKVersions('2.0', '1.3.2') returns 1 * compareSDKVersions('2.0', 2.0) returns NaN * * @internal * Limited to Microsoft-internal use */ export declare function compareSDKVersions(v1: string, v2: string): number; /** * @hidden * Generates a GUID * * @internal * Limited to Microsoft-internal use */ export declare function generateGUID(): string; /** * @internal * Limited to Microsoft-internal use */ export declare function deepFreeze(obj: T): T; /** * @hidden * The following type definitions will be used in the * utility functions below, which help in transforming the * promises to support callbacks for backward compatibility * * @internal * Limited to Microsoft-internal use */ export type ErrorResultCallback = (err?: SdkError, result?: T) => void; export type ErrorResultNullCallback = (err: SdkError | null, result: T | null) => void; export type ErrorBooleanResultCallback = (err?: SdkError, result?: boolean) => void; export type InputFunction = (...args: any[]) => Promise; export type ResultCallback = (result?: T) => void; export type SdkErrorCallback = ResultCallback; /** * This utility function is used when the result of the promise is same as the result in the callback. * @param funcHelper * @param callback * @param args * @returns * * @internal * Limited to Microsoft-internal use */ export declare function callCallbackWithErrorOrResultFromPromiseAndReturnPromise(funcHelper: InputFunction, callback?: ErrorResultCallback, ...args: any[]): Promise; /** * This utility function is used when the return type of the promise is usually void and * the result in the callback is a boolean type (true for success and false for error) * @param funcHelper * @param callback * @param args * @returns * @internal * Limited to Microsoft-internal use */ export declare function callCallbackWithErrorOrBooleanFromPromiseAndReturnPromise(funcHelper: InputFunction, callback?: ErrorBooleanResultCallback, ...args: any[]): Promise; /** * This utility function is called when the callback has only Error/SdkError as the primary argument. * @param funcHelper * @param callback * @param args * @returns * * @internal * Limited to Microsoft-internal use */ export declare function callCallbackWithSdkErrorFromPromiseAndReturnPromise(funcHelper: InputFunction, callback?: SdkErrorCallback, ...args: any[]): Promise; /** * This utility function is used when the result of the promise is same as the result in the callback. * @param funcHelper * @param callback * @param args * @returns * * @internal * Limited to Microsoft-internal use */ export declare function callCallbackWithErrorOrResultOrNullFromPromiseAndReturnPromise(funcHelper: InputFunction, callback?: ErrorResultNullCallback, ...args: any[]): Promise; /** * A helper function to add a timeout to an asynchronous operation. * * @param action Action to wrap the timeout around * @param timeoutInMs Timeout period in milliseconds * @param timeoutError Error to reject the promise with if timeout elapses before the action completed * @returns A promise which resolves to the result of provided action or rejects with a provided timeout error * if the initial action didn't complete within provided timeout. * * @internal * Limited to Microsoft-internal use */ export declare function runWithTimeout(action: () => Promise, timeoutInMs: number, timeoutError: TError): Promise; /** * @internal * Limited to Microsoft-internal use */ export declare function createTeamsAppLink(params: pages.AppNavigationParameters): string; /** * @hidden * Checks if the Adaptive Card schema version is supported by the host. * @param hostAdaptiveCardSchemaVersion Host's supported Adaptive Card version in the runtime. * * @returns true if the Adaptive Card Version is not supported and false if it is supported. */ export declare function isHostAdaptiveCardSchemaVersionUnsupported(hostAdaptiveCardSchemaVersion: AdaptiveCardVersion): boolean; /** * @hidden * Checks if a URL is a HTTPS protocol based URL. * @param url URL to be validated. * * @returns true if the URL is an https URL. */ export declare function isValidHttpsURL(url: URL): boolean; /** * Convert base64 string to blob * @param base64Data string respresenting the content * @param contentType Mimetype * @returns Promise */ export declare function base64ToBlob(mimeType: string, base64String: string): Promise; /** * Converts blob to base64 string. * @param blob Blob to convert to base64 string. */ export declare function getBase64StringFromBlob(blob: Blob): Promise; /** * Returns an SSR safe reference to the window object * @returns Window object reference */ export declare function ssrSafeWindow(): Window; /** * Checks if running in a Server Side Environment * @returns True if running in a Server Side Environment */ export declare function inServerSideRenderingEnvironment(): boolean; /** * @param id The id to validate * @param errorToThrow Customized error to throw if the id is not valid * * @throws Error if id is not valid * * @internal * Limited to Microsoft-internal use */ export declare function validateId(id: string, errorToThrow?: Error): void; export declare function validateUrl(url: URL, errorToThrow?: Error): void; /** * This function takes in a string that represents a full or relative path and returns a * fully qualified URL object. * * Currently this is accomplished by assigning the input string to an a tag and then retrieving * the a tag's href value. A side effect of doing this is that the string becomes a fully qualified * URL. This is probably not how I would choose to do this, but in order to not unintentionally * break something I've preseved the functionality here and just isolated the code to make it * easier to mock. * * @example * `fullyQualifyUrlString('https://example.com')` returns `new URL('https://example.com')` * `fullyQualifyUrlString('helloWorld')` returns `new URL('https://example.com/helloWorld')` * `fullyQualifyUrlString('hello%20World')` returns `new URL('https://example.com/hello%20World')` * * @param fullOrRelativePath A string representing a full or relative URL. * @returns A fully qualified URL representing the input string. */ export declare function fullyQualifyUrlString(fullOrRelativePath: string): URL; /** * Detects if there are any script tags in a given string, even if they are Uri encoded or encoded as HTML entities. * @param input string to test for script tags * @returns true if the input string contains a script tag, false otherwise */ export declare function hasScriptTags(input: string): boolean; /** * @param id The ID to validate against the UUID format * @throws Error if ID is not a valid UUID * * @internal * Limited to Microsoft-internal use */ export declare function validateUuid(id: string | undefined | null): void; /** * @internal * Limited to Microsoft-internal use * @returns current timestamp in milliseconds */ export declare function getCurrentTimestamp(): number | undefined; /** * @hidden * @internal * Limited to Microsoft-internal use * * Function to check whether the data is a primitive type or a plain object. * Recursion is limited to a maximum depth of 1000 to prevent excessive nesting and potential stack overflow. * * @param value The value to check * @returns true if the value is a primitive type or a plain object, false otherwise * */ export declare function isPrimitiveOrPlainObject(value: unknown, depth?: number): boolean; /** * Normalizes legacy ageGroup values for backward compatibility * @param runtimeConfig - The runtime configuration object to normalize * @returns A new IBaseRuntime object with normalized ageGroup values */ export declare function normalizeAgeGroupValue(runtimeConfig: IBaseRuntime): IBaseRuntime;