import { NativeAppResponsePayload } from './post-message'; export declare const attachToEmail: ({ url, subject, fileName, recipient, body, }: { url: string; subject?: string | undefined; fileName: string; recipient?: string | undefined; body?: string | undefined; }) => Promise; export declare type ShareOptions = { text: string; } | { url: string; fileName: string; text?: string; }; export declare const share: (options: ShareOptions) => Promise; export declare type NavigationBarIcon = Readonly<{ /** Identifier. The native side will notify the WebView when the icon is clicked using this id*/ id: string; /** URL to be opened by the app as a deep-link if present */ url?: string; /** * Accessibility label for the icon. When isButton=true you should always set a name, when isButton=false if you don't want it to be * read by screen readers, then explicitly set it to an empty string. * */ name: string; /** default: true, set to false if the Icon is decorative */ isButton?: boolean; /** * This is a string whose value will be mapped to a local resource that the app already knows. * See https://void.tuenti.io/idl-server/files/TopNavbarIcon/1.1 for available values. * A fallback icon will be used if the app doesn't recognize the value. */ iconEnum?: string; /** * Set of urls that the app will use to render the icon. * If both iconEnum and icon are received, the iconEnum should be used as a fallback in case there's some issue with the urls. */ icon?: { /** * Those urls should be icons in PNG format. * The icons will not be rendered until the image has been downloaded by the app. * The URLs should be inmutable to allow the app to cache those icons for an arbitrary amount of time. */ url: string; /** To be used if present when dark mode is activated. */ urlDark?: string; }; badge?: { /** * Boolean to determine if the badge should be shown * If `show` is `true` and number and nativeLogic are not present, the badge will be shown as a dot */ show: boolean; /** Same logic and current same supported values as in nativeLogic field from API */ nativeLogic?: 'INBOX' | 'PROFILE'; /** Hardcoded value to set as the badge count. It will have more priority than nativeLogic. */ number?: number; }; /** * Tracking properties to be sent to analytics when the icon is clicked. * These properties will be merged to the tracking event produced by the native side */ trackingProperties?: Record; /** * Identifies the action, native app can then do specific logic for this action. * Ex: if sectionName matches a maintenanceMode id, it may show a maintenance message instead of the usual behaviour */ sectionName?: string; }>; /** * Related doc: https://confluence.tid.es/pages/viewpage.action?spaceKey=CTO&title=%5BAPPS%5D+Shared+Spec%3A+Top+Bar+customization#id-[APPS]SharedSpec:TopBarcustomization-Tracking */ export declare const updateNavigationBar: (options: Readonly<{ title?: string; expandedTitle?: string; showBackButton?: boolean; showReloadButton?: boolean; /** @deprecated New apps will ignore this field */ showProfileButton?: boolean; backgroundColor?: string; leftActions?: ReadonlyArray; rightActions?: ReadonlyArray; /** * It defines how the icons and the text of the top bar should be tinted. * If null or unknown value is received, the initial colors set by the app or the last colorVariant set will be used */ colorVariant?: 'INVERSE' | 'REGULAR' | null; /** * This is a flag used to indicate that the appearance of the top bar should be restored to its original state. * The other fields that may come in the same bridge call will be applied after the reset */ resetToDefaultState?: boolean; }>) => Promise; /** * Returns the unsubscribe function. Should be called when the component is unmounted. */ export declare const onNavigationBarIconClicked: (handler: (payload: { id: string; }) => void) => (() => void); /** * @deprecated */ export declare const setWebViewTitle: (title: string) => Promise; export declare const notifyPageLoaded: () => Promise; export declare const notifyBridgeReady: () => Promise; declare type RemoteConfig = { result: { [s: string]: string; }; }; export declare const getRemoteConfig: () => Promise; export declare const isABTestingAvailable: (key: string) => Promise; export declare const reportStatus: ({ feature, status, reason, }: { feature: 'ACCOUNT'; status: 'CRITICAL' | 'GOOD' | 'BAD'; reason: string; }) => Promise>; export declare const fetch: ({ url, method, headers, body, }: { url: string; method: 'GET' | 'POST'; headers: { [key: string]: string; }; body: string; }) => Promise>; declare type PermissionsStatus = 'notifications' | 'read-contacts' | 'write-contacts'; export declare const checkPermissionStatus: (feature: PermissionsStatus, params?: { [key: string]: string; } | undefined) => Promise; export declare const getAppMetadata: (appToken: string) => Promise<{ isInstalled: boolean; marketUrl: string; appUrl: string; }>; export declare const getNetworkConnectionInfo: () => Promise>; declare type ActionBehavior = { behavior: 'confirm'; title: string; message: string; acceptText: string; cancelText: string; } | { behavior: 'default'; } | { behavior: 'cancel'; }; export declare const setActionBehavior: (actions: { webviewClose?: ActionBehavior; navigationBack?: ActionBehavior; }) => Promise; /** * Returns the Topaz SDK Token * https://www.topaz.com.br/ofd/index.php */ export declare const getTopazToken: (options?: { timeout?: number; }) => Promise<{ token: string; }>; export declare const getTopazValues: () => Promise<{ syncId?: string; }>; export declare const getPincodeInfo: () => Promise<{ status: 'enabled' | 'disabled'; }>; export declare const triggerPinOrBiometricAuthentication: (maxSecondsSinceLastValidation: number) => Promise>; export declare const focusNavbar: () => Promise<{ focused: boolean; }>; export declare const showLoadingOverlay: (payload: { /** * Whether the in animation is enabled (false by default) */ inAnimation?: boolean; /** * Whether the out animation is enabled (false by default) */ outAnimation?: boolean; /** * Minimum duration of the loop animation in milliseconds (0 by default) */ minimumLoopDurationMs?: number; /** * whether the loop animation should be stopped immediately or not (true by default) */ stopAnimationCycle?: boolean; /** * List of description texts to be shown one after the other */ descriptions?: Array; /** * Duration of each description in milliseconds (3000 by default) */ descriptionDurationMs?: number; /** * After this timeout loading screen would be hidden automatically (20000 by default) */ timeoutMs?: number; /** * (Only Android) If true, after loading screen has been hidden, if user presses android back button, webview window will close (true by default) */ closeOnBackButtonPressAfterFinish?: boolean; }) => Promise; export declare const hideLoadingOverlay: () => Promise; export {};