/**@class android.content.pm.PackageInstaller.SessionParams
 implements android.os.Parcelable

@extends java.lang.Object

 Parameters for creating a new {@link android.content.pm.PackageParser.PackageInstaller.Session}.
*/
var SessionParams = {

/**{@hide} */
MODE_INVALID : "-1",
/** Mode for an install session whose staged APKs should fully replace any
 existing APKs for the target app.
*/
MODE_FULL_INSTALL : "1",
/** Mode for an install session that should inherit any existing APKs for the
 target app, unless they have been explicitly overridden (based on split
 name) by the session. For example, this can be used to add one or more
 split APKs to an existing installation.
 <p>
 If there are no existing APKs for the target app, this behaves like
 {@link #MODE_FULL_INSTALL}.
*/
MODE_INHERIT_EXISTING : "2",
/** Special constant to refer to all restricted permissions.
*/
RESTRICTED_PERMISSIONS_ALL : "null",
/**{@hide} */
UID_UNKNOWN : "-1",
/**{@hide} */
mode : "null",
/**{@hide} */
installFlags : "null",
/**{@hide} */
installLocation : "null",
/**{@hide} */
installReason : "null",
/**{@hide} */
sizeBytes : "null",
/**{@hide} */
appPackageName : "null",
/**{@hide} */
appIcon : "null",
/**{@hide} */
appLabel : "null",
/**{@hide} */
appIconLastModified : "null",
/**{@hide} */
originatingUri : "null",
/**{@hide} */
originatingUid : "null",
/**{@hide} */
referrerUri : "null",
/**{@hide} */
abiOverride : "null",
/**{@hide} */
volumeUuid : "null",
/**{@hide} */
grantedRuntimePermissions : "null",
/**{@hide} */
whitelistedRestrictedPermissions : "null",
/**{@hide} */
installerPackageName : "null",
/**{@hide} */
isMultiPackage : "null",
/**{@hide} */
isStaged : "null",
/**{@hide} */
requiredInstalledVersionCode : "null",
/***/
CREATOR : "null",
/**{@hide}
*/
copy : function(  ) {},

/**Check if there are hidden options set.

 <p>Hidden options are those options that cannot be verified via public or system-api
 methods on {@link android.content.pm.PackageInstaller.SessionInfo}.
@return {Boolean} {@code true} if any hidden option is set.
@hide 
*/
areHiddenOptionsSet : function(  ) {},

/**Provide value of {@link android.content.pm.PackageParser.PackageInfo#installLocation}, which may be used
 to determine where the app will be staged. Defaults to
 {@link android.content.pm.PackageParser.PackageInfo#INSTALL_LOCATION_INTERNAL_ONLY}.
*/
setInstallLocation : function(  ) {},

/**Optionally indicate the total size (in bytes) of all APKs that will be
 delivered in this session. The system may use this to ensure enough disk
 space exists before proceeding, or to estimate container size for
 installations living on external storage.
@see PackageInfo#INSTALL_LOCATION_AUTO
@see PackageInfo#INSTALL_LOCATION_PREFER_EXTERNAL
*/
setSize : function(  ) {},

/**Optionally set the package name of the app being installed. It's strongly
 recommended that you provide this value when known, so that observers can
 communicate installing apps to users.
 <p>
 If the APKs staged in the session aren't consistent with this package
 name, the install will fail. Regardless of this value, all APKs in the
 app must have the same package name.
*/
setAppPackageName : function(  ) {},

/**Optionally set an icon representing the app being installed. This should
 be roughly {@link android.content.pm.PackageParser.ActivityManager#getLauncherLargeIconSize()} in both
 dimensions.
*/
setAppIcon : function(  ) {},

/**Optionally set a label representing the app being installed.
*/
setAppLabel : function(  ) {},

/**Optionally set the URI where this package was downloaded from. This is
 informational and may be used as a signal for anti-malware purposes.
@see Intent#EXTRA_ORIGINATING_URI
*/
setOriginatingUri : function(  ) {},

/**Sets the UID that initiated the package installation. This is informational
 and may be used as a signal for anti-malware purposes.
*/
setOriginatingUid : function(  ) {},

/**Optionally set the URI that referred you to install this package. This is
 informational and may be used as a signal for anti-malware purposes.
@see Intent#EXTRA_REFERRER
*/
setReferrerUri : function(  ) {},

/**Sets which runtime permissions to be granted to the package at installation.
@param {Object {java.lang.String[]}} permissions The permissions to grant or null to grant all runtime
     permissions.
@hide 
*/
setGrantedRuntimePermissions : function(  ) {},

/**Sets which restricted permissions to be whitelisted for the app. Whitelisting
 is not granting the permissions, rather it allows the app to hold permissions
 which are otherwise restricted. Whitelisting a non restricted permission has
 no effect.

 <p> Permissions can be hard restricted which means that the app cannot hold
 them or soft restricted where the app can hold the permission but in a weaker
 form. Whether a permission is {@link android.content.pm.PackageParser.PermissionInfo#FLAG_HARD_RESTRICTED hard
 restricted} or {@link android.content.pm.PackageParser.PermissionInfo#FLAG_SOFT_RESTRICTED soft restricted}
 depends on the permission declaration. Whitelisting a hard restricted permission
 allows the app to hold that permission and whitelisting a soft restricted
 permission allows the app to hold the permission in its full, unrestricted form.

 <p> Permissions can also be immutably restricted which means that the whitelist
 state of the permission can be determined only at install time and cannot be
 changed on updated or at a later point via the package manager APIs.

 <p>Initially, all restricted permissions are whitelisted but you can change
 which ones are whitelisted by calling this method or the corresponding ones
 on the {@link android.content.pm.PackageParser.PackageManager}.
@see PackageManager#addWhitelistedRestrictedPermission(String, String, int)
@see PackageManager#removeWhitelistedRestrictedPermission(String, String, int)
*/
setWhitelistedRestrictedPermissions : function(  ) {},

/**Request that rollbacks be enabled or disabled for the given upgrade.

 <p>If the parent session is staged or has rollback enabled, all children sessions
 must have the same properties.
@param {Boolean} enable set to {@code true} to enable, {@code false} to disable
@hide 
*/
setEnableRollback : function(  ) {},

/**
@deprecated use {@link #setRequestDowngrade(boolean)}.
 {@hide}
*/
setAllowDowngrade : function(  ) {},

/**{@hide}
*/
setRequestDowngrade : function(  ) {},

/**Require the given version of the package be installed.
 The install will only be allowed if the existing version code of
 the package installed on the device matches the given version code.
 Use {@link * android.content.pm.PackageParser.PackageManager#VERSION_CODE_HIGHEST} to allow
 installation regardless of the currently installed package version.
@hide 
*/
setRequiredInstalledVersionCode : function(  ) {},

/**{@hide}
*/
setInstallFlagsForcePermissionPrompt : function(  ) {},

/**{@hide}
*/
setDontKillApp : function(  ) {},

/**{@hide}
*/
setInstallAsInstantApp : function(  ) {},

/**Sets the install as a virtual preload. Will only have effect when called
 by the verifier.
 {@hide}
*/
setInstallAsVirtualPreload : function(  ) {},

/**Set the reason for installing this package.
 <p>
 The install reason should be a pre-defined integer. The behavior is
 undefined if other values are used.
@see PackageManager#INSTALL_REASON_UNKNOWN
@see PackageManager#INSTALL_REASON_POLICY
@see PackageManager#INSTALL_REASON_DEVICE_RESTORE
@see PackageManager#INSTALL_REASON_DEVICE_SETUP
@see PackageManager#INSTALL_REASON_USER
*/
setInstallReason : function(  ) {},

/**{@hide}
*/
setAllocateAggressive : function(  ) {},

/**Set the installer package for the app.

 By default this is the app that created the {@link android.content.pm.PackageParser.PackageInstaller} object.
@param {String} installerPackageName name of the installer package
 {@hide}
*/
setInstallerPackageName : function(  ) {},

/**Set this session to be the parent of a multi-package install.

 A multi-package install session contains no APKs and only references other install
 sessions via ID. When a multi-package session is committed, all of its children
 are committed to the system in an atomic manner. If any children fail to install,
 all of them do, including the multi-package session.
*/
setMultiPackage : function(  ) {},

/**Set this session to be staged to be installed at reboot.

 Staged sessions are scheduled to be installed at next reboot. Staged sessions can also be
 multi-package. In that case, if any of the children sessions fail to install at reboot,
 all the other children sessions are aborted as well.

 <p>If the parent session is staged or has rollback enabled, all children sessions
 must have the same properties.

 {@hide}
*/
setStaged : function(  ) {},

/**Set this session to be installing an APEX package.

 {@hide}
*/
setInstallAsApex : function(  ) {},

/**
@hide 
*/
getEnableRollback : function(  ) {},

/**{@hide}
*/
dump : function(  ) {},

/**
*/
describeContents : function(  ) {},

/**
*/
writeToParcel : function(  ) {},


};