UNPKG

native-fn

Version:
55 lines (54 loc) 1.96 kB
import { AppOpenState, MessengerType } from "../constants"; import { OS } from "../../platform/constants"; export declare interface AppInfo { scheme?: URLCandidate; fallback?: URLCandidateOrFallback; timeout?: number; allowAppStore?: boolean; allowWebStore?: boolean; } export declare interface AndroidAppInfo extends AppInfo { packageName?: string; intent?: URLCandidate; } export declare interface IOSAppInfo extends MacOSAppInfo { universal?: URLCandidate; } export declare interface WindowsAppInfo extends AppInfo { productId?: string; } export declare interface MacOSAppInfo extends AppInfo { bundleId?: string; trackId?: string; } export declare interface StoreInfo { appStore?: string; webStore?: string; } export declare interface AppOpenOptions { [OS.Android]?: AndroidAppInfo; ['android']?: AndroidAppInfo; [OS.iOS]?: IOSAppInfo; ['ios']?: IOSAppInfo; [OS.Windows]?: WindowsAppInfo; ['windows']?: WindowsAppInfo; [OS.MacOS]?: MacOSAppInfo; ['mac']?: MacOSAppInfo; } export declare type URLCandidate = URL | string; export declare type URLCandidateOrFallback = URLCandidate | (() => any); export declare type URLStringOrFallback = string | (() => any); export declare type Stringifiable = string | number | boolean | HTMLElement | null | undefined; export declare type StringifiableSequence = Stringifiable[] | NodeList | NodeListOf<Node> | HTMLCollectionBase; export declare type MessengerOpenOptions = { to?: Stringifiable | StringifiableSequence; cc?: Stringifiable | StringifiableSequence; bcc?: Stringifiable | StringifiableSequence; subject?: Stringifiable; body?: Stringifiable; } | HTMLFormElement | FormData; export declare type Messenger = Record<MessengerType, (options: MessengerOpenOptions) => Promise<void>>; export declare interface AppInstance { open(options: AppOpenOptions): Promise<AppOpenState>; messenger: Messenger; }