native-fn
Version:
45 lines (44 loc) • 1.57 kB
TypeScript
import { OS } from "../constants/platform";
import { AppOpenState, Messengers } from "../constants/app";
export declare interface AppInfo {
scheme?: string;
fallback?: string;
timeout?: number;
allowWebStore?: boolean;
}
export declare interface AndroidAppInfo extends AppInfo {
packageName?: string;
intent?: string;
}
export declare interface IOSAppInfo extends AppInfo {
packageName?: string;
trackId?: string;
universal?: string;
}
export declare interface WindowsAppInfo extends AppInfo {
productId?: string;
}
export declare interface MacOSAppInfo extends AppInfo {
packageName?: string;
trackId?: string;
}
export declare interface AppOpenOptions {
[OS.Android]?: AndroidAppInfo;
[OS.iOS]?: IOSAppInfo;
[OS.Windows]?: WindowsAppInfo;
[OS.MacOS]?: MacOSAppInfo;
}
export declare type Stringifiable = string | number | boolean | HTMLElement | null | undefined;
export declare type StringifiableList = Stringifiable[] | NodeList | NodeListOf<Node> | HTMLCollectionBase;
export declare type MessengerOpenOptions = {
to?: Stringifiable | StringifiableList;
cc?: Stringifiable | StringifiableList;
bcc?: Stringifiable | StringifiableList;
subject?: Stringifiable;
body?: Stringifiable;
} | HTMLFormElement | FormData;
export declare type Messenger = Record<Messengers, (options: MessengerOpenOptions, self?: WindowProxy) => Promise<void>>;
export declare interface App {
open: (options: AppOpenOptions, target?: WindowProxy) => Promise<AppOpenState>;
messenger: Messenger;
}