// Type definitions for core/platform

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;

export interface PlatformDescription {
  /**
   * The name of the detected browser
   */
  browserName: string /**
   * The version of the detected browser
   */;
  browserVersion: number /**
   * The version of the detected browser, if chrome browser is detected
   */;
  chrome: number /**
   * The version of the detected browser, if firefox browser is detected
   */;
  firefox: number /**
   * The version of the detected browser, if safari browser is detected
   */;
  safari: number /**
   * `true`  if the browser has native touch events
   */;
  touchEvent: boolean /**
   * `true`  if the platform has a touch screen
   */;
  touchScreen: boolean /**
   * The type of the detected platform. One of 'desktop', 'mobile', 'webos', 'node', or 'unknown'
   */;
  type: string;
}
/**
 * Returns the    object.
 */
export function detect(): PlatformDescription;
/**
 * Provides basic information about the running platform.
 */
export declare const platform: PlatformDescription;

export default platform;
