// Type definitions for webos/application

type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;

/**
 * Fetches the appID of the caller app.
 */
export function fetchAppId(): string;
/**
 * The callback signature for  `fetchAppInfo`
 */
export interface appInfoCallback {
  (
    /**
     * JSON data object read from the app's  _appinfo.json_  file.  `undefined`  if not found.
     */
    info: any,
  ): void;
}
/**
 * Fetches the  _appinfo.json_  data of the caller app.
 */
export function fetchAppInfo(callback: appInfoCallback, path?: string): void;
/**
 * Fetches the full root URI (path) of the caller app.
 */
export function fetchAppRootPath(): string;
/**
 * Emulate the remote  _back_  key.
 */
export function platformBack(): void;
