declare module "windows.applicationmodel" {
  export class Size {
    constructor();
  }

  export class PackageVersion {
    major: Number;
    minor: Number;
    build: Number;
    revision: Number;
    constructor();
  }

  export class AppDisplayInfo {
    description: String;
    displayName: String;
    constructor();

    getLogo(size: Object): Object;

  }

  export class AppInfo {
    appUserModelId: String;
    displayInfo: AppDisplayInfo;
    id: String;
    packageFamilyName: String;
    constructor();

  }

  export class SuspendingEventArgs {
    suspendingOperation: SuspendingOperation;
    constructor();

  }

  export class ISuspendingDeferral {
    constructor();

    complete(): void;

  }

  export class SuspendingDeferral {
    constructor();

    complete(): void;

  }

  export class ISuspendingOperation {
    deadline: Date;
    constructor();

    getDeferral(): SuspendingDeferral;

  }

  export class SuspendingOperation {
    deadline: Date;
    constructor();

    getDeferral(): SuspendingDeferral;

  }

  export class ISuspendingEventArgs {
    suspendingOperation: SuspendingOperation;
    constructor();

  }

  export class PackageStatus {
    dataOffline: Boolean;
    dependencyIssue: Boolean;
    deploymentInProgress: Boolean;
    disabled: Boolean;
    licenseIssue: Boolean;
    modified: Boolean;
    needsRemediation: Boolean;
    notAvailable: Boolean;
    packageOffline: Boolean;
    servicing: Boolean;
    tampered: Boolean;
    constructor();

    verifyIsOK(): Boolean;

  }

  export class PackageId {
    architecture: Number;
    familyName: String;
    fullName: String;
    name: String;
    publisher: String;
    publisherId: String;
    resourceId: String;
    version: PackageVersion;
    author: String;
    productId: String;
    constructor();

  }

  export class Package {
    static current: Package;
    dependencies: Object;
    id: PackageId;
    installedLocation: Object;
    isFramework: Boolean;
    description: String;
    displayName: String;
    isBundle: Boolean;
    isDevelopmentMode: Boolean;
    isResourcePackage: Boolean;
    logo: Object;
    publisherDisplayName: String;
    installedDate: Date;
    status: PackageStatus;
    installDate: Date;
    constructor();

    getAppListEntriesAsync(callback: (error: Error, result: Object) => void): void ;

    getThumbnailToken(): String;

    launch(parameters: String): void;

  }

  export class DesignMode {
    static designModeEnabled: Boolean;
    constructor();

  }

  export class CameraApplicationManager {
    constructor();

    static showInstalledApplicationsUI(): void;


  }

}



